0

你好!

向使用 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)之间的差异。

有任何想法吗?

4

0 回答 0