美文网首页
爬虫scrapy框架(6)——自动翻页效果

爬虫scrapy框架(6)——自动翻页效果

作者: 猛犸象和剑齿虎 | 来源:发表于2019-05-31 07:12 被阅读0次
t013b9c86f5a43c0037.jpg
import scrapy
import re
from myspider.items import MyspiderItem
class MusicspiderSpider(scrapy.Spider):
    name = 'musicspider'#爬虫识别名称
    allowed_domains = ['www.htqyy.com']#爬虫能够爬取的网址范围
    start_urls = ['http://www.htqyy.com/top/musicList/hot?pageIndex=0&pageSize=20']#爬取的起始url

    def parse(self, response):
        # filename='music.html'
        data= response.body.decode()#获取响应内容
        # open(filename,'wb').write(data)#写入本地,请求的动作被框架完成
        items=[]# 存放音乐信息的列表
        titles = re.findall(r'target="play" title="(.*?)"',data)#获取所有歌曲名
        artists = re.findall(r'target="_blank">(.*?)</a>', data)#获取所有艺术家

        for i in range(0,len(titles)):
            item=MyspiderItem()
            item["title"]=titles[i]
            item["artist"] = artists[i]
            yield item
        #获取当前请求的url,提取页码信息
        beforeurl=response.url
        pat1=r"pageIndex=(\d)"
        page=re.search(pat1,beforeurl).group(1)
        page=int(page)+1#获取下一页请求的page信息
        if page < 5:
        #构造下一页的url,发送下次请求
            nexturl='http://www.htqyy.com/top/musicList/hot?pageIndex='+str(page)+'&pageSize=20'
            #在parse方法中发送请求,请求完成后调用parse方法。
            yield scrapy.Request(nexturl,callback=self.parse)

在黑屏终端中输入scrapy crawl musicspider

结果: image.png

相关文章

网友评论

      本文标题:爬虫scrapy框架(6)——自动翻页效果

      本文链接:https://www.haomeiwen.com/subject/iciktctx.html