PySpider框架的基本使用以及常见问题

首页 » Python » PySpider框架的基本使用以及常见问题

功能简介:-pyquery提取
多进程处理 去重处理 结果监控 代码简洁 WebUI管理 错误重试 JavaScript渲染

PySpider的安装

pyspider框架的安装非常的简单,在pycharm终端输入命令:

pip install --default-timeout=5000 pyspider

但是不推荐这种方式,因为后面会出现599错误,而且网上解决办法特别麻烦,我们可以直接到github官网下载,选择压缩包也可以,解压我们呢找到pyspider文件并复制,粘贴到Python的site-packages文件夹中,然后在使用pip命令安装一下就可以了。

PySpider的安装以及常见问题

首先运行pyspider,在终端输入 pyspider all 即可。如果你安装过async库,那么需要替换以下源代码中的async为任意字符,可以改为async_:

  • site-packages\pyspider\webui\app.py
  • site-packages\pyspider\run.py
  • site-packages\pyspider\fetcher\tornado_fetcher.py

你为了省事可以全部替换,但是需要注意tornado_fetcher.py文件,需要修改30-40行左右的代码为:

 from tornado.curl_httpclient import CurlAsyncHTTPClient
    from tornado.simple_httpclient import SimpleAsyncHTTPClient

记得修改 MyCurlasyHTTPClient(CurlAsyncHTTPClient) MySimpleasyHTTPClient(SimpleAsyncHTTPClient),替换掉了不该替换的东西,所以就会报错:ImportError: cannot import name ‘CurlasyHTTPClient’ from ‘tornado.curl_httpclient’

在启动之前你需要安装PhantomJS,这个可以让我们抓取js渲染的界面,如果不安装pyspider也使用不了的。提供直连:phantomjs-2.1.1,自己想办法下载。之后需要配置环境变量。

或者在压缩包中找到exe文件,放到Python.exe同级文件夹下也是可以的。如果启动之后一直卡在 result_worker starting,那么可以需要替换wsgidav版本:

pip uninstall wsgidav
python -m pip install --default-timeout=5000 wsgidav==2.4.1

如果出现:ImportError: cannot import name DispatcherMiddleware错误,是因为werkzeug的版本为1.0.0,这个版本中没有DispatcherMiddleware方法,需要卸载werkzeug,重新安装低版本的werkzeug:

 python -m pip uninstall werkzeug
python -m pip install werkzeug==0.16.0

到此基本问题已经解决了,然后在浏览器中输入:http://localhost:5000/,就可以正常的看到下图:

PySpider框架的基本使用以及常见问题

Pyspider框架案例-马蜂窝旅游

现在我们使用PySpider来抓取马蜂窝旅游首页的热门游记以及详情页的部分数据。我们首先启动pyspider,然后在浏览器中访问:http://localhost:5000/。如果一直卡在result_worker starting,没有报错的话,可以进入你安装pyspider包的路径下启动。我们点击Create创建一个项目,名字随意。

修改self.crawl(“url地址”),index_page提取列表页,detail_page提取详情页

def on_result(self,result):
	if result:
		self.save_to_mongo(result)
def save_to_mongo(self,result):
	client=pymongo.MondoClient('local')
	db=client['tututu']
	if self.db['lundon'].insert(result)
		print(result)

翻页

next=response.doc().attr.href
self.crawl(next,clickback=self.index_page )

未经允许不得转载:作者:鳄鱼君, 转载或复制请以 超链接形式 并注明出处 鳄鱼君
原文地址:《PySpider框架的基本使用以及常见问题》 发布于2020-03-28

分享到:
赞(0) 赏杯咖啡

文章对你有帮助可赏作者一杯咖啡

支付宝扫一扫打赏

微信扫一扫打赏

Vieu4.6主题
专业打造轻量级个人企业风格博客主题!专注于前端开发,全站响应式布局自适应模板。
切换注册

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

Q Q 登 录
微 博 登 录
切换登录

注册