用Python进行Web抓取:常见的障碍和解决方案

本文探讨了在Web抓取过程中遇到的障碍,如证书、iFrame和JavaScript问题,以及如何利用Python和Selenium进行基于浏览器的抓取。通过设置Selenium模拟浏览器行为,解决了证书选择、在iFrame中填写表单和处理JavaScript控制的元素等问题,成功实现数据抓取。
摘要由CSDN通过智能技术生成

乎从万维网诞生之时起,Web抓取就被用来从网站中提取数据。在早期,抓取主要是在静态页面上完成的--那些具有已知元素、标记和数据的页面。

然而,最近,Web开发中的先进技术使这项任务变得更加困难。在本文中,我们将探讨在新技术和其他因素阻止标准抓取的情况下如何进行数据抓取。

用Python进行Web抓取:常见的障碍和解决方案

 

传统数据抓取

TNW Couch会议

加入行业领袖,为不确定的未来制定新的战略。

现在登记

由于大多数网站生成的页面都是人类可读性的,而不是自动阅读的,所以网页抓取主要是以编程方式解析网页的标记数据(如右击,查看源),然后检测数据中的静态模式,从而使程序能够“读取”各种信息,并将其保存到文件或数据库中。

用Python进行Web抓取:常见的障碍和解决方案

 

如果要找到报表数据,通常可以通过传递带有URL的表单变量或参数来访问数据。例如:

https://www.myreportdata.com?month=12&year=2004&clientid=24823

Python已经成为最流行的Web抓取语言之一,部分原因在于为它创建的各种Web库。一个流行的图书馆, 美汤,通过允许搜索、导航和修改标记(即解析树),将数据从HTML和XML文件中提取出来。

基于浏览器的抓取

最近,我有一个看起来很简单的刮擦项目,我已经做好了充分的准备使用传统的刮擦来处理它。但随着我深入研究,我发现了传统方法无法克服的障碍。

有三个主要问题使我无法采用标准的刮擦方法:

  1. 证书。 需要安装一份证书才能访问网站中数据所在的部分。访问初始页面时,会出现一个提示,要求我选择安装在计算机上的人的适当证书,然后单击“确定”。
  2. 框架。 该网站使用iframes,这扰乱了我的正常刮刮。是的,我可以尝试找到所有的iframeURL,然后构建一个站点地图,但这似乎会变得很麻烦。
  3. JavaScript 在填写带有参数的表单(例如,客户ID、日期范围等)后访问数据。通常,我会绕过表单,只需将表单变量(通过URL或作为隐藏的表单变量)传递到结果页面并查看结果。但是在这种情况下,表单包含JavaScript,这不允许我以正常的方式访问表单变量。

因此,我决定放弃我的传统方法,考虑一个可能的工具,基于浏览器的抓取。这将与正常情况

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值