Python中scrapy如何对接selenium进行动态网页爬取?
单纯用 selenium 爬取数据,效率 真的是慢。但是逆向 js 又搞不定,就想着用 scrapy+selenium+redis,做成分布式,提高爬取效率。请问大佬们,有实现方式吗?或者, 有没有项目可以参考看下。
万分感谢
Python中scrapy如何对接selenium进行动态网页爬取?
selenium 会破坏 scrapy 的异步性吧?感觉快不了多少。如果真的要配合 selenium 的话,可以在下载中间件中用,返回 response 对象,绕开默认下载器
和 scrapy 配合使用的好像都是 splash
我的经验是尽可能逆向 js,直接抓最根本的请求,效率巨高
或者用 js 渲染库,scapy 不清楚,requests 和 js 有渲染库的
其实逆向 js 很简单的,js 要么 xhr,要么内置 url 都很好找的
middle 里面换掉
middleware 中
另:
http://jaho.fun/google.jpg
试过了,因为需要翻页,splash 无法解决
逆向 js 后的效率,的确会高很多。但是我对 js 语言不是很熟悉,一看到长串的 js,就感觉没头绪。。。
效率上应该不会快太多。我是想做成分布式,开 2-4 个 driver 来做,这样比单纯的 selenium 要快一些
试一下了。。
翻页直接抓包啊,八成是 xhr 实现的
可以直接把 JS 下载回来。python 载入然后解密呀。这样你只需要找到 js 的加解密函数就可以了呀。
selenium 保存 cookies 后传给 scrapy,等再需要 selenium 上场时 scrapy 再把 cookies 传回来。


