一. Scrapy爬虫基础

最简单的Scrapy爬虫程序:

import scrapy

class Books(scrapy.Spider):
    name = 'books'                                               #建立唯一爬虫名,调用CMD命令时会用到
    start_urls = ['http://books.toscrape.com/']                  #爬取开始地址

    def parse(self, response):                       #默认解析函数
        infos = response.xpath('//article')          #直接使用response.xpath来解析信息
        for info in infos:
            title = info.xpath("h3/a/@title").extract()              #最终提取信息时,加上.extract()
            price = info.xpath('div/p[@class="price_color"]/text()').extract()

            yield {'title':title,'price':price}                               #生成器返回数据信息

运行命令:scrapy crawl books -o books.csv
结果截图:

一. Scrapy爬虫基础_第1张图片
image.png

当然,如果要爬取下一页的页面,共计50页,可以在parse()函数下添加以下代码,然后运行上述代码即可获取每页20条,共计1000条的图书标题以及价格信息:

def parse(self, response):  
    ...
    next_url = response.xpath('//li[@class="next"]/a/@href').extract()[0]
            if next_url:
                next_url = response.urljoin(next_url)
                yield Request(next_url,callback=self.parse)

你可能感兴趣的:(一. Scrapy爬虫基础)