基于crawlspider的全站数据爬取

  1.spider的子类

  2 .使用流程

    创建一个基于CrawlSpider的爬虫文件  scrapy genspider -t crawl spidername

import scrapy
from scrapy.spider.crawl import CrawlSpider, Rule
fromm scrapy.linkextractors import LinkExtractor

class myspider(CrawlSpider):
    name = 'pra_crawlspider'
    start_urls = [ 'http://pic.netbian.com/ ]
    rules = [
         #实例化一个Rule ( 规则解析器 ) 的对象
         Rule(LinkExtractor(restrict_xpaths='//div[@class="page"]), callback="parse_item", follow=True)             
    ]

    def parse_item( self, response ) :
        imgs = response.xpath( '//div[@class="slist"]//img )
        for  img in imgs:
            print(img.xpaht('./@src')).extract_first()
            print(img.xpath('./@alt')).extract_first()

  蜘蛛运行后,先访问start_url给定的第一个页面, 将响应对象res返回给parse方法, parse方法会根据rules指定的规则从res中提取url继续发送请求, 响应对象res会传递给callback指定的函数去处理.

01-21 15:15