scrapy重写Request方法

之前想批量爬取一个网站的新闻,这个翻页的url太简单,直接替换调外部链接内的p参数即可
写成这样子

urls = ['https://www.baidu/p=%s'%(i) for i in range(1,11)]

但是自带parse()方法却在解析后,无法使用response.follow()方法提交下一个链接,给下一个方法去执行。

于是我重写Request方法

import scrapy
from article.items import ArticleItem
from scrapy import Request

class XinwenSpider(scrapy.Spider):
    name = 'xinwen'
    allowed_domains = ['www.hbskzy.cn']



    def start_requests(self):
        urls = ['http://www.hbswkj.com/index_list.jsp?a1032t=44&a1032p=%s&a1032c=20&urltype=tree.TreeTempUrl&wbtreeid=1021'%(i) for i in range(2,5)]
        for i in urls:
            yield Request(url=i,callback=self.next_parse)

由于response.follow()方法需要执行start_urls里面的链接,使用这个方法的情况适合在:需要在解析网页后才能获取下一页的url,这种情况下适合使用response.follow(),否则,错误的应用场景极其容易出现错误。

猜你喜欢

转载自blog.csdn.net/qq_17802895/article/details/108545617
今日推荐