Scrapy框架初探
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()
Scrapy框架初探的更多相关文章
- Python爬虫 ---scrapy框架初探及实战
目录 Scrapy框架安装 操作环境介绍 安装scrapy框架(linux系统下) 检测安装是否成功 Scrapy框架爬取原理 Scrapy框架的主体结构分为五个部分: 它还有两个可以自定义下载功能的 ...
- Scrapy 框架进阶笔记
上一篇简单了解了scrapy各个模块的功能:Scrapy框架初探 -- Dapianzi卡夫卡 在这篇通过一些实例来深入理解 scrapy 的各个对象以及它们是怎么相互协作的 settings.py ...
- scrapy架构初探
scrapy架构初探 引言 Python即时网络爬虫启动的目标是一起把互联网变成大数据库.单纯的开放源代码并不是开源的全部,开源的核心是"开放的思想",聚合最好的想法.技术.人员, ...
- scrapy框架爬取豆瓣读书(1)
1.scrapy框架 Scrapy,Python开发的一个快速.高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据.Scrapy用途广泛,可以用于数据挖掘.监测和自动化测试 ...
- Python爬虫Scrapy框架入门(2)
本文是跟着大神博客,尝试从网站上爬一堆东西,一堆你懂得的东西 附上原创链接: http://www.cnblogs.com/qiyeboy/p/5428240.html 基本思路是,查看网页元素,填写 ...
- Python爬虫Scrapy框架入门(1)
也许是很少接触python的原因,我觉得是Scrapy框架和以往Java框架很不一样:它真的是个框架. 从表层来看,与Java框架引入jar包.配置xml或.property文件不同,Scrapy的模 ...
- Scrapy框架使用—quotesbot 项目(学习记录一)
一.Scrapy框架的安装及相关理论知识的学习可以参考:http://www.yiibai.com/scrapy/scrapy_environment.html 二.重点记录我学习使用scrapy框架 ...
- Python爬虫从入门到放弃(十一)之 Scrapy框架整体的一个了解
这里是通过爬取伯乐在线的全部文章为例子,让自己先对scrapy进行一个整理的理解 该例子中的详细代码会放到我的github地址:https://github.com/pythonsite/spider ...
- Python爬虫从入门到放弃(十二)之 Scrapy框架的架构和原理
这一篇文章主要是为了对scrapy框架的工作流程以及各个组件功能的介绍 Scrapy目前已经可以很好的在python3上运行Scrapy使用了Twisted作为框架,Twisted有些特殊的地方是它是 ...
随机推荐
- Linux配置redis服务器
1.安装redis 2.开启6379端口,使外部机器能够访问 3.
- runtime error 的原因
1. 数组访问越界 2. 分母为 0 3. 括号 做题时偶然发现的! (详见 UVA 10158 War) 代码中出现了这种东西 else if( arefriends(x,y==-1) ) ...
- php 二维数组验证一个值是否存在
php 判断数字在二维数组里 $arr = array( array('a', 'b'), array('c', 'd') ); in_array('a', $arr); // 此时返回的永远都是 f ...
- bzoj 4537: [Hnoi2016]最小公倍数 分块+并查集
题目大意: 给定一张n个点m条边的无向图,每条边有两种权.每次询问某两个点之间是否存在一条路径上的边的两种权的最大值分别等于给定值. n,q <= 50000. m <= 100000 题 ...
- (转载)[机器学习] Coursera ML笔记 - 监督学习(Supervised Learning) - Representation
[机器学习] Coursera ML笔记 - 监督学习(Supervised Learning) - Representation http://blog.csdn.net/walilk/articl ...
- POJ3784:Running Median
浅谈堆:https://www.cnblogs.com/AKMer/p/10284629.html 题目传送门:http://poj.org/problem?id=3784 用一个"对顶堆& ...
- 洛谷 P4547 & bzoj 5006 随机二分图 —— 状压DP+期望
题目:https://www.luogu.org/problemnew/show/P4547 https://www.lydsy.com/JudgeOnline/problem.php?id=5006 ...
- 如何在开启了log-bin的MySQL Server中创建FUNCTION
在MySQL主从复制机器的master的数据库中创建function,报出如下错误: Error Code: 1418. This function has none of DETERMINISTIC ...
- 用Fiddler2来监听HTTP(记:用skydrive sdk访问时,出错后用Fidder抓包分析)
最近在写一个关于如何上传文件到skydrive的demo, 用REST上传失败. 安装Telerik的Fiddler后, 可以监听http或者https通信, 然后可以在软件中看到返回的json数据或 ...
- 功能强大的Northwoods GoDiagram控件库
Northwoods GoDiagram控件库用于开发图形应用 Northwoods GoDiagram控件库是付费软件,其官方网址为http://www.nwoods.com/ Northwoods ...