scrapy使用总结
来源:互联网 发布:win10 1709 知乎 编辑:程序博客网 时间:2024/06/15 04:24
- scrapy介绍
- 系统架构
- 中间件
- pipeline
- 一些核心的类
- 更高级的话题
- 源码分析
- 使用举例
- 安装问题
- 反爬虫
- scrapy介绍
scrapy介绍
第一重要的文档当然是官方文档[1],看完入门介绍[2]之后,重点关注一下几个方面:
系统架构
Python爬虫(六)–Scrapy框架学习
中间件
- downloader middleware
user-agent的选择
class UserAgentMiddleware(object): """ 换User-Agent """ def process_request(self, request, spider): agent = random.choice(agents) request.headers["User-Agent"] = agent
proxy ip 代理更换
方法一: 使用Random proxy middleware for Scrapy,可以直接用pip install scrapy_proxies
,这是在多个代理ip中随机切换
方法二: 如果只有一个代理,可以直接设置环境变量来实现。也可以使用scrapy自带的proxy插件。多代理的代码实现也可以参考stackoverflow: Scrapy and proxies
- 重点内容spider middleware
pipeline
一些核心的类
- request
- response
可能用到的python知识
理解yield之What does the “yield” keyword do in Python?
更高级的话题
- 分布式
源码分析
csdn上self-motivation写的一系列scrapy源码分析,例如可以通过设置RANDOMIZE_DOWNLOAD_DELAY = True来开启随机下载延迟
使用举例
github上关于新浪微博的抓取项目, 新浪微博爬虫(Scrapy、Redis)
安装问题
安装环境
linux mint (ubuntu 14)
python 2.7.6
scrapy 1.3.3
(一) Twisted TLSVersion的问题
直接使用sudo pip install scrapy
安装最新的scrapy,在shell命令行内运行scrapy出现error提示
twisted/internet/_sslverify.py", line 38, in TLSVersion.TLSv1_1: SSL.OP_NO_TLSv1_1, AttributeError: 'module' object has no attribute 'OP_NO_TLSv1_1'
从上面的错误提示中,能够大概看出是Twisted包的问题。使用pip list
查看各个包的版本号,Twisted的版本号是17。有两种解决办法,
降低Twsited的版本号
使用sudo pip install Twsited==16.4.1
,降低版本之后,发现scrapy就可以正常使用了使用虚拟环境
官方安装文档[3]中有提到推荐使用virtual environment的方式安装scrapy,更具体参考这一节install scrapy using virtualenv 和 virtualenv的官方指南
shell过程如下
$ sudo pip install virtualenv #安装虚拟环境工具$ virtualenv ENV #创建一个虚拟环境目录$ source ./ENV/bin/activate #激活虚拟环境, 注意下面$前面的(Env)(ENV) $ pip install Scrapy(ENV) $ deactivate # 禁止激活$ rm -r ENV #移除虚拟环境目录
(二)no module named win32api 问题
在windows环境中会遇到这个问题,原因是缺少win32,到 http://sourceforge.net/projects/pywin32/files/找到对应的版本下载安装即可
反爬虫
Scrapy爬虫反ban的技巧
- scrapy使用总结
- scrapy 总结
- Scrapy总结
- scrapy使用
- 爬虫总结(二)-- scrapy
- python的scrapy总结
- 调试总结 scrapy
- Scrapy followlinks总结
- scrapy安装出错总结
- scrapy-redis集成scrapy-splash使用教程
- Scrapy使用心得
- 使用scrapy爬取整站图片
- scrapy 使用代理
- Scrapy的使用
- scrapy 使用代理
- scrapy框架基本使用
- scrapy使用笔记
- scrapy中使用代理
- 开发程序的目标
- android加载图片时避免出现OOM(OutOfMemory)
- hdu1232 畅通工程 并查集
- 浏览器标准模式和怪异模式之间的区别是什么——整理自网页
- ext tab 下grid不出现滚动条问题
- scrapy使用总结
- 【maven】5、Maven 多环境部署(filters、resources、profiles)
- redis介绍和安装
- 配置butterknife8.0
- [舰队收藏]舰娘命名学
- Android MeasureSpec完全解析——手把手教你分析
- bmp2yuv
- 初学分享,求指教
- EXTjs 在IE10下显示不全问题