【问题标题】:Extract Author Name and Abstract from python Code [closed]从python代码中提取作者姓名和摘要[关闭]
【发布时间】:2020-06-13 21:17:46
【问题描述】:

在我的 python 项目中,我列出了被引用的论文列表,对于每篇论文,我需要来自 google 学者Author NameAbstractCitation Count 。我像这样使用scholarly . PyPI

search_pub = scholarly.search_pubs(paperName)
docInfo = next(search_pub)

但现在我收到此错误:

例外:无法从 Google Scholar 获取页面。

他们似乎由于多次请求而阻止了我的 IP。现在我找不到任何其他编程方式来提取这些信息。我可以有一个论文参考列表来提取数据。

任何人都可以帮助我使用任何 python 库或指导我为此编写一些代码吗?

【问题讨论】:

  • 绕过速率限制器不会提供堆栈溢出的帮助。

标签: python data-extraction google-scholar


【解决方案1】:

您可以等待此临时禁令到期并继续执行。确保在您的代码中插入time.sleep(...) 或类似名称,以保持在其速率限制之下。 Google Scholar 没有官方 API,因此如果这是您想要的数据,那么抓取是您唯一的选择。

(我不建议你刮,请注意谷歌学术通过their robots.txt不允许机器人)

【讨论】:

  • 对不起,不允许机器人通过是什么意思??
  • 我不是律师,不能就此向您提供真正的建议。我所知道的是我的答案是正确的;您只会被禁止一个小时左右,然后您可以继续爬行,只要您不再超出限制即可。如果我的反对者有更多信息,欢迎分享。
  • @NullPointer robots.txt 文件指定了它希望爬虫遵循的规则; Google 学者 robots.txt 指定不允许抓取,这意味着他们不喜欢它。这些规则是否也可以通过法律行动来执行还有待商榷,也可能取决于您当地的司法管辖区
【解决方案2】:

如果您查询过多或过于频繁,Google Scholar 会阻止您的 IP。即使您让程序休眠,也不要让它定期休眠,因为它们也可以检测到。 Google 将此视为 DoS(拒绝服务)攻击。即使您将睡眠时间随机化,在某一时刻,如果您进行太多查询,它也会标记您。一种解决方法是使用轮换代理服务。上网查一下,有很多免费的。他们为您提供 User-Agent 字符串,如果您为每个查询随机放置这些字符串,您就可以放心了。

【讨论】:

  • 我已经尝试过这种方法,但这对我也不起作用。
猜你喜欢
  • 1970-01-01
  • 2012-12-15
  • 2021-09-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多