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, 请问这是为什么?
最近我在试着爬取淘宝搜索结果,也是同样的问题,请教了一下我的一位前辈。在
proess_request
方法的第一行打印一下时间戳,发现url传入这里的时候似乎是以同步的方式逐个发送过来的,而这里返回了HtmlResponse
,意味着请求将不会进入下载器(Downloader)。因此有可能这里的下载并不是以异步的方式处理的,如果希望以异步的方式进行处理,可能需要自己手写异步方法。