python - 使用 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,所以我可能会错过一个可行的解决方案)
你们中有人知道我如何绕过保护来抓取必要的数据吗?
提前非常感谢!
解决方案
你可以看看这个:隐式等待
driver.implicitly_wait(10) # seconds
每次您尝试在页面上选择一个元素时,使用该行代码,selenium 将尝试获取它 10 秒(如果您愿意,可以更长时间)并在未找到时引发错误
推荐阅读
- python - 未找到“display_data”的反向。“display_data”不是有效的视图函数或模式名称
- javascript - 如果在几秒钟后单击正文,如何触发 javascript 函数?
- php - 如何在php中使用表单输入上传和插入多个图像?
- reactjs - 子目录的反应构建给出 404
- nginx - 如何设置 nginx 入口控制器,使 kubernetes pod 保持 http 但 nginx 在 https 上提供请求
- firebase - 在 Firestore 文档中合并地图数据的价格
- docker - Docker:Mern 项目页面未加载
- c# - Windows 窗体:向上/向下箭头仅在“启用”另一个按钮时有效
- kubernetes - 在 Kubernetes 上的容器中启动测试
- git - 我可以创建一个没有来自 master 分支的任何文件的新分支吗?