Python爬虫与mac下Scrapy配置
用Python开发爬虫很方便。
本质:抓取---分析---存储
要点:
(1)get请求:最基本抓取。用到 urllib urllib2 requests httplib2 。
(2)表单登陆:向服务器发送post请求,服务器再将返回的cookie存入本地
(3)使用cookie登陆:
(4)对于反爬虫机制的处理:
使用代理:限制IP地址情况,可解决由于频繁点击而需要输入验证码登陆的情况
时间设置:限制频率情况
伪装成浏览器或者反盗链:User-Agent, Referer
(5)对于断线重连:使用multi_session和multi_open对爬虫抓取的session或opener进行保持
(6)多线程抓取
(7)对于Ajax请求
(8)自动化测试工具Selenium
#mac下Scrapy配置
1.安装Python
2.安装 pip
3.直接安装 Scrapy
由于 Linux下已经预装了 lxml 和 OPENSSL
如果想验证 lxml ,可以分别输入
sudo pip install lxml
出现下面的提示这证明已经安装成功
Requirementalreadysatisfied(use--upgradetoupgrade):lxmlin/usr/lib/python2.7/dist-packages
如果想验证openssl,则直接输入openssl 即可,如果跳转到 OPENSSL 命令行,则安装成功。
接下来直接安装 Scrapy 即可
sudo pip install Scrapy
安装完毕之后,输入 scrapy
注意,这里linux下不要输入Scrapy,linux依然严格区分大小写的,感谢kamen童鞋提醒。
如果出现如下提示,这证明安装成功
4:出错情况:经常是six模块的版本问题
scrapy
Traceback(most recent call last):
File"/usr/local/bin/scrapy",line7,infromscrapy.cmdlineimportexecuteFile"/Library/Python/2.7/site-packages/scrapy/__init__.py",line48,infromscrapy.spidersimportSpiderFile"/Library/Python/2.7/site-packages/scrapy/spiders/__init__.py",line10,infromscrapy.httpimportRequestFile"/Library/Python/2.7/site-packages/scrapy/http/__init__.py",line12,infromscrapy.http.request.rpcimportXmlRpcRequestFile"/Library/Python/2.7/site-packages/scrapy/http/request/rpc.py",line7,in
fromsix.movesimportxmlrpc_clientasxmlrpclib
ImportError:cannotimportname xmlrpc_client
下面是stackoverflow上的高票解决办法:
I've just fixed this issue on my OS X.
Please backup your files first.
sudo rm-rf/Library/Python/2.7/site-packages/six*
sudo rm-rf/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/six*
sudo pip install six
Scrapy 1.0.0 is ready to go.