爬行Google Sch

2024-06-16 11:07:38 发布

您现在位置:Python中文网/ 问答频道 /正文

作为我研究性学习的一部分,我正在尝试获取大量学术文章的信息。文章的数量大约有几千篇。因为Google Scholar没有API,所以我试图抓取/抓取Scholar。现在我知道,这在技术上是违反EULA的,但我试图对此非常礼貌和合理。我知道谷歌不允许机器人来控制流量。我从大约500个请求的测试批开始,每个请求之间间隔1秒。在前100个请求之后我被阻止了。我尝试了其他多种策略,包括:

  1. 将暂停时间延长到20秒左右,并添加一些随机噪音
  2. 使暂停日志正常分布(这样大多数暂停都是以秒为单位,但有时会有几分钟甚至更长的暂停)
  3. 在请求块之间进行长时间的停顿(数小时)(约100个)。在

我怀疑,在这一点上,我的脚本是否会比任何人都要增加大量流量。但不管怎样,我总是在收到大约100-200个请求后被阻止。有没有人知道一个好的策略来克服这个问题(我不在乎它是否需要几个星期,只要它是自动化的)。还有,有没有人有过直接与谷歌进行交易并请求许可做类似的事情(研究等)的经验吗?写下来,解释一下我想做什么,怎么做,看看我的项目能否得到许可,值得吗?我该怎么联系他们呢?谢谢!在


Tags: api信息数量间隔google文章时间机器人
1条回答
网友
1楼 · 发布于 2024-06-16 11:07:38

在没有测试的情况下,我仍然非常确定以下其中一个可以做到:

  1. 容易,但成功的机会很小:

    每次rand(0100)请求后,从有问题的站点中删除所有Cookie,
    然后更改用户代理、接受的语言等,然后重复。

  2. 更多的工作,但结果是蜘蛛更结实:

    通过Tor、其他代理、移动网络等发送您的请求,以屏蔽您的IP(还可以在每个回合执行建议1)

有关硒的更新 我忽略了您正在使用Selenium这一事实,认为它只是某种现代编程语言而已(我知道Selenium可以由最广泛使用的语言驱动,但作为某种浏览器插件,只需要很少的编程技能)。在

因为我认为你的编码技能不是(或者不是?)令人难以置信的是,对于那些在使用Selenium时有相同限制的人,我的答案是要么学习一种简单的脚本语言(PowerShell?!)或者JavaScript(因为这是你所使用的网络;-))并从中获取。在

如果平滑地自动抓取就像浏览器插件一样简单,那么web将是一个更加混乱、混乱和对凭证要求更高的地方。在

相关问题 更多 >