Scrapy 貌似是 Python 最出名的爬虫框架

0. 文档##

中文文档:https://scrapy-chs.readthedocs.io/zh_CN/0.24/intro/tutorial.html

官方文档:https://docs.scrapy.org/en/latest/

中文文档很旧了,建议直接看官方英文文档。

1. 安装##

pip install scrapy

还有什么不是这么装的吗。。

2. 新建项目##

scrapy startproject <projectname>

非常简单,进入你要放项目的目录,一行命令scrapy自动帮你生成项目框架文件,结构如下:

tutorial/
scrapy.cfg # 框架配置文件 tutorial/ # 整个项目目录
__init__.py items.py # 数据结构在这里定义 pipelines.py # 管道处理 settings.py # 项目配置文件 spiders/ # 爬虫目录
__init__.py

3. 流程介绍##

  • items.py 定义你所爬取的目标数据的结构。比如你要抓取贴吧,那么结构应该类似 用户-头像-主帖id-帖子id-帖子内容-其他等等。如果抓取知乎,数据结构应该类似 用户-头像-签名-回答-问题id-点赞数-评论数。简单来说,就是设计表结构。
  • pipelines.py 按照设计者命名来分析,这个管道的作用是将抓取的数据进行一定的处理封装,里面内置的 parse_item 方法也从名字上印证这一点。比如抓到的是转码数据,在这里可以解码翻译。实际项目中通常在这里进行数据库落地操作,把抓取的 item 存入mysql或者mogodb,最后再 return item 即可。
  • spiders/xxx.spider.py 实际的爬虫策略都在这个目录下。一个文件表示一个爬虫。通常的流程是 初始链接(首页或者登录页) -- 分析内容,在回调中继续抓取下一页(执行登录操作) -- 继续分析内容,回调抓取... 这里我们不用考虑cookie,scrapy会自动帮我们处理。

4. 小结##

如果之前有用 urllib 进行过爬虫联系,那么只要熟悉了scrapy框架的各个文件作用,使用scrapy可以说是收到擒来.有几个参考方法:

  • post请求(登录用到): formRequest
  • 分析网页内容: response.css()

最新文章

  1. [LeetCode] Interleaving String - 交织的字符串
  2. YY一下淘宝商品模型
  3. C# Winform 拦截关闭按钮触发的事件
  4. 图形学基础教程02--顶点数据和SHADER寄存器 (带演示程序)
  5. ECMall——安装时的小bug解决办法
  6. Winpcap构建用户级网桥
  7. 后台返回json数据,前台显示代码
  8. java序列化ClassNotFoundException
  9. App开发革命进阶路
  10. Linux 系统裁剪笔记 4 (内核配置选项及删改)
  11. DoesNotExist at /account/
  12. Maven教程(4)--Maven管理Oracle驱动包
  13. RabbitMQ广播:fanout模式
  14. 【转】Oracle EBS中查询Profile的各种SQL
  15. Truck Adblue Emulator For SCANIA
  16. vue 下拉刷新 上拉加载(vue-scroller)
  17. svn下已add文件如何忽略
  18. laravel中使用event
  19. javax.validation.UnexpectedTypeException: HV000030: No validator could be found for constraint 解决方法
  20. Springboot+MyBatis+mysql+jsp页面跳转详细示例

热门文章

  1. GridView设置多个DatakeyNames
  2. 学习c++的优秀博客(转)
  3. JS使用模板快速填充HTML控件数据
  4. codeforces 615E Hexagons (二分+找规律)
  5. codeforces 598E E. Chocolate Bar(区间dp)
  6. leetcode 50. Pow(x, n)(快速幂)
  7. Linux-安装ssh服务
  8. resin启动时报错com.caucho.config.LineConfigException的解决
  9. Mysql备份脚本python编写
  10. Guice总结