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有些特殊的地方是它是 ...
随机推荐
- c语言代码风格
简要:主要介绍了K&R风格和Allman(BSD)风格之间的缩进大小和大括号位置等区别 关于其它的代码风格,详见:Indent style - Wikipedia. 1.K&R sty ...
- http接口测试框架-python
简单分解一下 接口测试框架设计: 主入口 -> 遍历接口/用例 -> 发送请求+接收响应 ->结果的对比 -> 生成报告 ->发送email 分成几大类:主入口的py文件 ...
- 动态规划 两个字符串之间的编辑距离 leetcode72
public static int minDistance(String word1, String word2) { char[] s1 = word1.toCharArray(); char[] ...
- codeforces 553B B. Kyoya and Permutation(找规律)
题目链接: B. Kyoya and Permutation time limit per test 2 seconds memory limit per test 256 megabytes inp ...
- OpenCV-Python 霍夫直线检测-HoughLinesP函数参数
cv2.HoughLines()函数是在二值图像中查找直线,cv2.HoughLinesP()函数可以查找直线段. cv2.HoughLinesP()函数原型: HoughLinesP(image, ...
- NodeJS中 Path 模块
var path = require('path'); // 当发现有多个连续的斜杠时,会替换成一个: 当路径末尾包含斜杠时,会保留: // 在 Windows 系统会使用反斜杠. var p = p ...
- 脚本手动执行正常,放cron中执行有问题的原因
问题原因: 1. crond服务没启动 2. 环境变量如 PATH LANG SHELL 等设置不对 3. 脚本中引用的文件地址是相对路径,而非绝对路径. 排查步骤: 以 check ...
- C#连接solr时提示 java内存异常 (jetty和tomcat哪个更High) java.lang.OutOfMemoryError
C#连接solr时提示 java内存异常 java.lang.OutOfMemoryError 时间:20180130 09:51:13.329,消息:异常消息<?xml version=& ...
- bzoj 2597 剪刀石头布 —— 拆边费用流
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2597 不合法的三个人之间的关系就是一个人赢了两次: 记 \( deg[i] \) 表示第 \ ...
- linux shell查询
查看当前版本可用的shell cat /etc/shells 查看当前使用的shell echo $0 查看当前用户默认使用的shell echo $SHELL