CrawlSpiders模块的使用

创建文件模板

scrapy genspider -t crawl tencent tencent.com

 CrawlSpiders就是为爬取整站孕育而生的,我们以前是分页下一页,然后再yied。这样太麻烦。CrawlSpiders是你只需要写好规则之后。他就会根据你这一页的response得到符合条件的url,然后再进去,再分析。

只需要增加两三行代码就可以替换我们以前的分页逻辑。

# -*- coding: utf-8 -*-
import scrapy
from scrapy.linkextractors import LinkExtractor
from scrapy.spiders import CrawlSpider, Rule
from scrapy_splash import SplashRequest

class TencentSpider(CrawlSpider):
    name = 'tencent'
    #起始页
    start_urls = ['http://lab.scrapyd.cn/page/1']
    rules = (
        #制定爬取的url规则
        Rule(LinkExtractor(allow=r'http://lab.scrapyd.cn/page/'), callback='parse_item', follow=True),
    )
    #爬取每页的这个数据
    def parse_item(self, response):
        print(response.xpath('///*[@id="main"]/div[1]/span[1]/text()'))

猜你喜欢

转载自www.cnblogs.com/coder-lzh/p/9847109.html