14

我正在使用PythonScrapy框架开发一个网络爬虫项目。它从电子商务购物网站抓取大约10k 网页。整个项目运行良好,但在将代码从测试服务器移动到生产服务器之前,我想选择一个更好的代理 ip 提供程序服务,这样我就不必担心我的IP 阻止或拒绝网站访问我的蜘蛛。

到目前为止,我在 Scrapy 中使用中间件从各种网站提供的免费代理 ip 列表中手动旋转ip

现在我对我应该选择的选项感到困惑

  1. http://www.ninjasproxy.com/http://hidemyass.com/购买高级代理列表

  2. 使用TOR

  3. 使用http://www.hotspotshield.com/之类的VPN 服务

  4. 任何优于以上三个的选项

4

3 回答 3

9

以下是我目前正在使用的选项(取决于我的需要):

  • proxymesh.com - 小型项目的合理价格。该服务从未遇到过任何问题,因为它可以使用 scrapy 开箱即用(我不隶属于他们)
  • 一个在 Amazon 上启动多个 EC2 微实例的自构建脚本。然后我通过 SSH 连接到机器并创建一个 SOCKS 代理连接,然后这些连接通过委托通过管道传输,以创建可用于 scrapy 的普通 http 代理。http 代理可以使用 haproxy 之类的负载平衡,或者您自己构建一个自定义中间件来旋转代理

后一种解决方案是目前最适合我的解决方案,每天可以推送大约 20-30GB 的流量,没有任何问题。

于 2013-10-19T09:32:33.977 回答
7

Crawlera专为网络爬虫项目而构建。例如,它实现了智能算法来避免被禁止,它被用来抓取非常大和高知名度的网站。

免责声明:我在母公司Scrapinghub工作,他们也是 Scrapy 的核心开发人员。

于 2013-10-19T01:07:54.270 回答
0

如果您不想使用付费服务,请考虑只使用一个可以为您自动轮换代理的 scrapy 库:https ://github.com/TeamHG-Memex/scrapy-rotating-proxies

您可以在此处查看有关如何使其自动化的完整教程:https ://tinyendian.com/articles/how-to-scrape-the-web-and-not-get-caught

请记住,通过代理连接时总是会造成性能损失,但是您提到的10K网页仍然在您的范围内。

于 2018-04-24T08:35:30.697 回答