前期准备:
1安装:
- conda install scrapy;
- scrapy startproject 项目名;
2爬虫的几个要素:
输入目标网址=> 编写处理规则(正则表达式或者xpath语法)=>对得到的数据进行处理
- 请求发送对象(sender,对于request的封装,防止被封)
- 解析文档对象(将请求的网页当作是html文档还是字符串)
- 承载所需要的解析对象(标准格式的数据承载者)
- 获取所需对象后的操作者 (得到对象后,是以文件形式保存还是存入数据库)
- 整个流程的错误处理者(整个流程的异常监控者)
3官方文档常用概念:
- 命令行工具(Command line tools)
学习用于管理Scrapy项目的命令行工具 - Items
定义爬取的数据 - Spiders
编写爬取网站的规则, - 选择器(Selectors)
使用XPath提取网页的数据 - Scrapy终端(Scrapy shell)
在交互环境中测试提取数据的代码 - Item Loaders
使用爬取到的数据填充item - Item Pipeline
后处理(Post-process),存储爬取的数据 - Feed exports
以不同格式输出爬取数据到不同的存储端 - Link Extractors
方便用于提取后续跟进链接的类。
常用操作:
1:连续爬取
- 预加载需要爬取的列表,直接到这个列表都处理完,相应的爬取工作都已经完成了。
做法:在start_urls 里面生成相应的列表 - 从第一页开始爬取,遇到有下一页标签的,那继续爬取,如果没有下一页类似的标签,那表示已经爬到最后一页
做法:爬取下一页实现全趴取的过程,使用yield关键字 - 分析当前页面的所有链接,对于链接符合某种特定规则的,继续爬取,如果没有那表示爬取工作完成(此时需要建立已经爬取列表,防止重复操作)
2:数据输出方式
3:与数据库连接