scrapy爬取网易云音乐
程序员文章站
2022-05-08 10:57:09
...
具体的代码放到了github上面:Nereus-Minos
一、分析:
1、一般网易云音乐歌曲的链接地址是形式:http://music.163.com/song/media/outer/url?id=1203045.mp3
(其中需要修改的只是id部分,所以主要工作是获得歌曲的id)
2、网易云音乐·排行榜的网址形式是:https://music.163.com/discover/toplist?id=19723756,只需要修改id号就能爬取不同排行榜的歌曲
二、注意:(https://music.163.com/#/discover/toplist?id=19723756)
1、网址中间不能加“#”,要自己去除其中的“#”,去除“#”,去除“#”,去除“#”!!!
2、在爬取的时候现将返回来的response.url,和response.body看一看,可能返回的html和我们在网页上看到的html不一样
3、can only concatenate list (not "float") to list是因为非列表元素与列表元素连接了,容易错在file_path方法中
4、重定向(302错误):在settings文件中
MEDIA_ALLOW_REDIRECTS = True
在pipelines文件中
def handle_redirect(self, file_url):
response = requests.head(file_url)
if response.status_code == 302:
file_url = response.headers["Location"]
return file_url
def get_media_requests(self, item, info):
redirect_url = self.handle_redirect(item["file_urls"][0])
yield scrapy.Request(redirect_url)
下一篇: spider----爬取多层多页书籍