首页 > 解决方案 > 使用 Python 加载页面时出现爬行问题(最多等待 5 秒)

问题描述

我正在尝试抓取网页https://sec.report/,该网页似乎受到特定服务器配置的保护。(我需要我的硕士论文的数据)。

我有一个公司名称列表,我想从上述网站获取某些标识符 (CIK)。
Landauer Inc --> 0000825410.
Starwood Waypoint Homes --> 0001579471.
Supreme Industries Inc --> 0000350846.
[and 2,000 more ...]

示例:在后一个列表(Landauer Inc)中搜索第一个条目,我可以使用以下链接获取 CIK:https ://sec.report/CIK/Search/Landauer%20Inc 。通用链接是https://sec.report/CIK/Search/{company_name}

问题:当我向上述 URL 发送一个简单请求 (Python) 时,我得到一个 HTTP 200 响应。然而,我只看到一个网站说:请等待最多 5 秒......请在此处查看响应: 发送请求时加载页面由于https://checkforcloudflare.selesti.com/?q=https://sec.report/
,我假设该网站受到 Cloudfare 的保护

试用:我已经尝试使用 Python 抓取页面:
(1)具有完整请求标头(旋转)的 Tor 代理。
(2) Selenium,包括 Cloudfare 包/扩展。
(3)简单的scrapy spider (我从来没有使用过scrapy,所以我可能会错过一个可行的解决方案)

你们中有人知道我如何绕过保护来抓取必要的数据吗?
提前非常感谢!

标签: pythonseleniumscrapyweb-crawlerddos

解决方案


你可以看看这个:隐式等待

driver.implicitly_wait(10) # seconds

每次您尝试在页面上选择一个元素时,使用该行代码,selenium 将尝试获取它 10 秒(如果您愿意,可以更长时间)并在未找到时引发错误


推荐阅读