scrapy获取汽车之家数据


1、创建scrapy项目

>scrapy startproject scrapy_carhome

2、找到对应接口

3、创建爬虫文件

> cd scrapy_carhome\scrapy_carhome\spiders

scrapy_carhome\scrapy_carhome\spiders> scrapy genspider car https://car.autohome.com.cn/price/brand-15.html

4、注释robots协议

//div[@class="main-title"]/a/text()

//div[@class="main-lever"]//span/span/text()

car.py

import scrapy


class CarSpider(scrapy.Spider):
    name = 'car'
    allowed_domains = ['https://car.autohome.com.cn/price/brand-15.html']
    # 注意如果你的请求的接口是html为结尾的  那么是不需要加/的
    start_urls = ['https://car.autohome.com.cn/price/brand-15.html']

    def parse(self, response):
        name_list = response.xpath('//div[@class="main-title"]/a/text()')
        price_list = response.xpath('//div[@class="main-lever"]//span/span/text()')
     # 遍历列表
        for i in range(len(name_list)):
            name = name_list[i].extract()
            price = price_list[i].extract()
            print(name,price)

运行爬虫文件

scrapy_carhome\scrapy_carhome\spiders>scrapy crawl car

scrapy架构组成  1)引擎 —>自动运行,无需关注,会自动组织所有的请求对象,分发给下载器 2)下载器 —>从引擎处获取到请求对象后,请求数据 3spiders —>Spider类定义了如何爬取某个(或某些)网站。包括了爬取的动作(:是否跟进链接)以及如何从网页的内容中提取结构化数据(爬取item)。 换句话说,Spider就是您定义爬取的动作及分析某个网页(或者是有些网页)的地方。 4)调度器 —>有自己的调度规则,无需关注 5)管道(Item pipeline—>最终处理数据的管道,会预留接口供我们处理数据ItemSpider中被收集之后,它将会被传递到Item Pipeline,一些组件会按照一定的顺序执行对Item的处理。每个item pipeline组件(有时称之为“Item Pipeline”)是实现了简单方法的Python类。他们接收到Item并通过它执行一些行为,同时也决定此Item是否继续通过pipeline,或是被丢弃而不再进行处理。   以下是item pipeline的一些典型应用:     1. 清理HTML数据     2. 验证爬取的数据(检查item包含某些字段)     3. 查重(并丢弃)     4. 将爬取结果保存到数据库中 scrapy工作原理 

相关