你好!
向使用 scrapinghub、shub-image、selenuim+phantomjs、 crawlera 的人提问。 英文不好,不好意思
我需要抓取有很多 JS 代码的网站。所以我使用scrapy + selenium。此外,它应该在 Scrapy Cloud 上运行。我已经编写了使用 scrapy+selenuim+phantomjs 的蜘蛛并在我的本地机器上运行它。一切正常。然后我使用 shub-image 将项目部署到 Scrapy 云。部署没问题。但是 webdriver.page_source 的结果是不同的。在本地可以,在云端不行(带有铭文的 HTML - 403,请求 200 http)。然后我决定使用 crawlera acc。我已经添加了它:
service_args = [
'--proxy="proxy.crawlera.com:8010"',
'--proxy-type=https',
'--proxy-auth="apikey"',
]
适用于 Windows(本地)
self.driver = webdriver.PhantomJS(executable_path=r'D:\programms\phantomjs-2.1.1-windows\bin\phantomjs.exe',service_args=service_args)
对于 docker 实例
self.driver = webdriver.PhantomJS(executable_path=r'/usr/bin/phantomjs', service_args=service_args, desired_capabilities=dcap)
再次在当地一切都很好。云不好。我检查了 cralwera 的信息。没关系。请求从两者(本地和云)发送。
再次注意:相同的代理(crawlera)。在 Windows 上的响应:200 http,带有正确代码的 html
ScrapyCloud(docker 实例)的响应:200 http,带有铭文 403(禁止)的 html
我不明白出了什么问题。我认为这可能是 phantomjs 版本(Windows、Linux)之间的差异。
有任何想法吗?