我用 JSoup 为 Java 中的 Google Scholar 制作了一个网络爬虫。刮板在 Scholar 中搜索 DOI 并找到本文的引文。研究需要这些数据。
但是,刮板仅适用于第一个请求。.. 之后,刮板会在 Scholar 网站上遇到验证码。
但是,当我在浏览器 (Chrome) 中打开网站时,Google Scholar 会正常打开。
这怎么可能?所有请求都来自同一个 IP 地址!到目前为止,我已经尝试了以下选项:
- 为请求选择一个随机用户代理(从 5 个用户代理的列表中)
- 请求之间的随机延迟在 5-50 秒之间
- 使用 TOR 代理。然而几乎所有的终端节点都已经被谷歌屏蔽了
当我分析 Chrome 向 Scholar 发出的请求时,我发现 cookie 与某些会话 ID 一起使用。可能这就是 Chrome 请求未被阻止的原因。是否可以将此 cookie 用于使用 JSoup 发出的请求?
谢谢!