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

最新文章

  1. maxscript, 批量导出物体
  2. Oracle 表分区
  3. ECSHOP后台SQL查询提示错误 this sql May contain UPDATE,DELETE,TRUNCATE,ALTER,DROP,FLUSH,INSERT
  4. C#调用opencv
  5. 实例学习Bloom Filter
  6. 解析UML9种图的作用
  7. Unreal Engine 4 创建Destructible Mesh(可破坏网格)
  8. 虚拟机VMware网络类型&&SSH远程连接Linux
  9. php并发加锁示例
  10. java课程设计——博客作业教学数据分析系统(201521123083 戴志斌)
  11. 好看的dialog,sweet Alert Dialog 导入Android Studio
  12. Python中的特殊属性与方法
  13. Codeforces 1062 E - Company
  14. 【maven】Maven根据Profile读取不同配置环境配置文件
  15. Xcode更新后插件失效解决办法
  16. RTMP规范 消息与消息块
  17. 20145118 《Java程序设计》 第2周学习总结
  18. 用CSS绘制最常见的40种形状和图形
  19. ubuntu时区设置
  20. Linux Basic学习笔记01

热门文章

  1. ☕【Java技术指南】「编译器专题」深入分析探究“静态编译器”(JAVA\IDEA\ECJ编译器)是否可以实现代码优化?
  2. 题解「BZOJ4310」跳蚤
  3. 后缀自动机(SAM)奶妈式教程
  4. 哈工大知识图谱(Knowledge Graph)课程概述
  5. sql常用的统计公式
  6. 按键检测GPIO输入
  7. 初学python-day2 字符串格式化1
  8. csp-j 复赛感想
  9. 【数据结构与算法Python版学习笔记】树——二叉查找树 Binary Search Tree
  10. 腾讯bugly产生bug定位行数不准解决方案