欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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