Scrapy框架初探
2024-08-25 10:11:42
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()
最新文章
- [LeetCode] Interleaving String - 交织的字符串
- YY一下淘宝商品模型
- C# Winform 拦截关闭按钮触发的事件
- 图形学基础教程02--顶点数据和SHADER寄存器 (带演示程序)
- ECMall——安装时的小bug解决办法
- Winpcap构建用户级网桥
- 后台返回json数据,前台显示代码
- java序列化ClassNotFoundException
- App开发革命进阶路
- Linux 系统裁剪笔记 4 (内核配置选项及删改)
- DoesNotExist at /account/
- Maven教程(4)--Maven管理Oracle驱动包
- RabbitMQ广播:fanout模式
- 【转】Oracle EBS中查询Profile的各种SQL
- Truck Adblue Emulator For SCANIA
- vue 下拉刷新 上拉加载(vue-scroller)
- svn下已add文件如何忽略
- laravel中使用event
- javax.validation.UnexpectedTypeException: HV000030: No validator could be found for constraint 解决方法
- Springboot+MyBatis+mysql+jsp页面跳转详细示例
热门文章
- GridView设置多个DatakeyNames
- 学习c++的优秀博客(转)
- JS使用模板快速填充HTML控件数据
- codeforces 615E Hexagons (二分+找规律)
- codeforces 598E E. Chocolate Bar(区间dp)
- leetcode 50. Pow(x, n)(快速幂)
- Linux-安装ssh服务
- resin启动时报错com.caucho.config.LineConfigException的解决
- Mysql备份脚本python编写
- Guice总结