在网络抓取中故意轮换和保留IP地址

问题描述 投票:0回答:1

我不是抓取专家。我有一个有趣的小型 Python 项目,使用 Tor、Privoxy 和自定义 Python 类从一个戒备森严的网站上抓取数据,至少看起来是这样。虽然一路上有一些警告,但目前它的效果出奇的好。

有一件事我不明白。为什么我见过的所有库和片段都实现了:

  1. n 个请求后或指定时间限制后 IP 轮换。
  2. 在 n 次请求后保留和释放已用 IP 的机制。

我的方法是简单地选择一个用户代理,将 NEWNYM 信号发送到 Tor 并抓取,直到服务器将我踢出(403 或类似),然后使用新的 UA 和 IP 重复。到目前为止,这在速度和可靠性方面优于上述技术。

这可能不是 Tor 独有的问题,但在涉及 Tor 时需要特别注意的一些原因包括退出节点数量有限,并且不能保证 NEWNYM 信号每次都提供不同的 IP 地址。

我在免费代理方面取得了不同程度的成功,这是我尚未深入探讨的主题。

我错过了什么?

python web-scraping tor
1个回答
0
投票

如果网站没有抓取检测并且允许您从同一 IP 发出一万亿个请求而不会产生任何后果,那么执行 1 或 2 似乎是一种有缺陷的方法。每个案例都是不同的,所以我只会做任何有效的或适合您的情况所需的事情。

在多次请求或长时间后更改 IP 可能有助于避免检测 如果网站在查看来自同一 IP 的 1,000 个不同 URL 或每分钟查看超过 60 个页面后阻止您的 IP。通过实现这些功能,他们会假设网站如何对待爬虫,并且还会假设您如何使用他们的代码(快速爬虫与慢速爬虫、多页面与少页面等)。

我不会太担心它,并坚持使用适合您的用例的任何内容。如果不需要经常更改 IP,则无需更改。如果他们开始阻止你,那么你需要再次改变策略,采取有效的措施。

© www.soinside.com 2019 - 2024. All rights reserved.