Scrapy+phantonjs 爬去速度过慢?
scrapy 运行日志
**************ProxyMiddleware not pass************171.38.66.23:9999
2017-01-26 23:05:38 [selenium.webdriver.remote.remote_connection] DEBUG: POST http://127.0.0.1:57234/wd/hub/session {"desiredCapabilities": {"browserName": "phantomjs", "version": "", "platform": "ANY", "javascriptEnabled": true}, "requiredCapabilities": {}}
2017-01-26 23:05:38 [selenium.webdriver.remote.remote_connection] DEBUG: Finished Request
2017-01-26 23:05:38 [selenium.webdriver.remote.remote_connection] DEBUG: POST http://127.0.0.1:57234/wd/hub/session/e5c0aeb0-e3d8-11e6-a629-15e39efe8c5a/url {"url": "Matweb Engineering Materials List", "sessionId": "e5c0aeb0-e3d8-11e6-a629-15e39efe8c5a"}
phantonjs 中间件代码:
def process_request(self, request, spider):
driver = webdriver.PhantomJS(executable_path=r"/Users/apple/phantomjs-2.1.1-macosx/bin/phantomjs")
driver.get(request.url)
body = driver.page_source
print ("访问"+request.url)
return HtmlResponse(driver.current_url, body=body, encoding='utf-8', request=request)
每次执行到selenium.webdriver.remote.remote_connection 。 都会卡上20s, 请问这是为什么?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
最近我在试着爬取淘宝搜索结果,也是同样的问题,请教了一下我的一位前辈。在
proess_request
方法的第一行打印一下时间戳,发现url传入这里的时候似乎是以同步的方式逐个发送过来的,而这里返回了HtmlResponse
,意味着请求将不会进入下载器(Downloader)。因此有可能这里的下载并不是以异步的方式处理的,如果希望以异步的方式进行处理,可能需要自己手写异步方法。速度慢的原因有很多,电脑配置,网络原因等等。
如果想要提高速率,我们可以设置相关参数,使其不加载我们不需要的资源,比如图片,视频等等这些文件比较大的文件。如果你不想加载这些数据,可以进行如下设置
具体可参考:phantomjs设置
@FreeLoop 写的极是!
具体dcap的加法,请参看下面的链接
设置PHANTOMJS的USER-AGENT