打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Scrapy

一 引言

日前,自己因项目需要需要爬取淘宝排行榜,而淘宝因为用了很多的AJAX技术,不能用普通的爬虫爬取,于是我这里就想用如一些集成了PhantomJS或类似的python爬虫框架。一开始自己尝试了pyspider,但是自己对pysider并不是很熟练,而且网上这方面资料也很少,于是弃坑转为自己较为熟悉的scrapy框架。经过一番搜索,在Github发现了这个,scrapy-splash,由scrapy框架开发者维护,可以作为scrapy的中间件使用,从而提供对AJAX页面的JS解析。

二 安装

这里不详细说明scrapy和scrapy-splash的安装过程,可参考下面给出的官方链接

scrapy框架的安装

scrapy框架安装

scrapy-splash安装

scrapy-splash安装

三 使用scrapy-splash

1.要使用scrapy-splash,可以参考官方的文档
也参考我下面的方法(不过,我这里这是很简单的使用了scrapy-splash,并没有用到其他功能。如果自己还要更高阶的需求,如使用redis作为消息队列等,就必须要继承scrapy_splash.SplashAwareFSCacheStorage,并且对url判断使用splash自己的fingerprint scrapy_splash.splash_request_fingerprint) 所以更高阶的用法还请参考官方文档
2.配置:


1.设置下载中间件:

DOWNLOADER_MIDDLEWARES = { 'scrapy_splash.SplashCookiesMiddleware': 723, 'scrapy_splash.SplashMiddleware': 725, 'scrapy.downloadermiddlewares.httpcompression.HttpCompressionMiddleware': 810,}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

2.设置爬虫中间件

SPIDER_MIDDLEWARES = { 'scrapy_splash.SplashDeduplicateArgsMiddleware': 100,}
  • 1
  • 2
  • 3
  • 4

3.使用splash解析,要在配置文件中设置:

SPLASH_URL = 'http://127.0.0.1:8050/'
  • 1

4.配置消息队列所使用的过滤类

DUPEFILTER_CLASS = 'scrapy_splash.SplashAwareDupeFilter'
  • 1

5.配置消息队列需要使用的类

HTTPCACHE_STORAGE = 'scrapy_splash.SplashAwareFSCacheStorage'
  • 1

完整的配置文件可以参考这里:
淘宝爬虫的配置文件

接下来正式爬取工作请参考下一篇博文:
Scrapy-Splash爬取淘宝排行榜(二)

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
居然还有比Scrapy功能更强大的框架!最实用的是它?(Gerapy)
Python爬虫相关框架
Python网络爬虫(七)——创造网络蜘蛛之Scrapy
走近代码之Python–爬虫框架Portia | 艾伯特
python网络爬虫第一书:这本新书收获最多程序员读者!
网页爬虫
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服