小编Pet*_*ter的帖子

抓取Google学术搜索

作为我研究的一部分,我试图获取大量学术文章的信息.文章数量大约为数千.由于谷歌学术搜索没有API,我试图抓住/爬行学者.现在我现在,这在技术上是针对EULA的,但我试图对此非常礼貌和合理.我了解Google不允许机器人将流量控制在合理范围内.我开始测试一批约500个请求,每个请求之间有1个.关于前100个请求后我被阻止了.我尝试了多种其他策略,包括:

  1. 将暂停时间延长至20秒并为其添加一些随机噪声
  2. 使暂停记录正常分布(以便大多数暂停大约为秒,但偶尔会有几分钟甚至更长的暂停)
  3. 在请求块之间进行长时间暂停(几个小时)(~100).

我怀疑,在这一点上,我的剧本正在增加任何人类所需的大量流量.但是,在约100-200个请求之后,我总是被阻止.有没有人知道一个很好的策略来克服这个问题(我不关心它是否需要数周,只要它是自动化的).此外,是否有人直接与谷歌签约并要求获得类似的事情(研究等)?是否值得尝试编写它们并解释我正在尝试做什么以及如何做,并看看我是否可以获得我的项目的许可?我将如何与他们联系?谢谢!

python web-crawler google-scholar

7
推荐指数
1
解决办法
2619
查看次数

Python Selenium chromedriver OSError: [Errno 8] Exec 格式错误

我正在尝试在我的 python (2.7) 脚本中设置与 Selenium 的 chrome 会话,如下所示:

from selenium import webdriver
driver=webdriver.Chrome()
Run Code Online (Sandbox Code Playgroud)

但我收到以下错误:

Traceback (most recent call last):
File "soup_test.py", line 30, in <module>
driver=webdriver.Chrome()
File "/usr/local/lib/python2.7/site-packages/selenium/webdriver/chrome/webdriver.py", line 61, in __init__
self.service.start()
File "/usr/local/lib/python2.7/site-packages/selenium/webdriver/common/service.py", line 62, in start
stdout=self.log_file, stderr=self.log_file)
File "/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 710, in __init__
errread, errwrite)
File "/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 1335, in _execute_child
raise child_exception
OSError: [Errno 8] Exec format error
Run Code Online (Sandbox Code Playgroud)

通过其他问题搜索,一个常见问题似乎是 chromedriver 不在路径上,但我检查过,它是。我什至尝试明确指定路径:

driver=webdriver.Chrome("/path/to/chromedriver")
Run Code Online (Sandbox Code Playgroud)

得到相同的结果。有人知道可能是什么问题吗?我真的很感激你的帮助!

python macos selenium

5
推荐指数
1
解决办法
6412
查看次数

标签 统计

python ×2

google-scholar ×1

macos ×1

selenium ×1

web-crawler ×1