如何抓取网页数据(python对如何获取网页内容的各种情况和方法做一个总结)
优采云 发布时间: 2022-02-13 12:22如何抓取网页数据(python对如何获取网页内容的各种情况和方法做一个总结)
python爬虫如何爬取网络数据?
在学习python爬虫的过程中,总会有想要获取网页内容的时候。本文将总结如何获取网页内容的各种情况和方法。
下面我们将介绍三种抓取网页数据的方法,首先是正则表达式,然后是流行的 BeautifulSoup 模块,最后是强大的 lxml 模块。
1. 正则表达式
如果您不熟悉正则表达式,或者需要一些提示,请查看正则表达式
如何
得到一个完整的介绍。
当我们使用正则表达式抓取国家/地区数据时,我们首先尝试匹配元素的内容,如下所示:
从以上结果可以看出,标签用于多个国家属性。要隔离 area 属性,我们只需选择其中的第二个元素,如下所示:
虽然这个方案现在可用,但如果页面发生变化,它很可能会失败。例如,该表已更改为删除第二行中的土地面积数据。如果我们现在只抓取数据,我们可以忽略这种未来可能发生的变化。但是,如果我们以后想再次获取这些数据,我们需要一个更健壮的解决方案,尽可能避免这种布局更改的影响。为了使正则表达式更加健壮,我们也可以添加它的父元素。由于元素具有 ID 属性,因此它应该是唯一的。
这个迭代版本看起来好一点,但是网页更新还有很多其他的方式也会让这个正则表达式不令人满意。例如,将双引号更改为单引号,在标签之间添加额外的空格,或者更改 area_label 等。下面是一个尝试支持这些可能性的改进版本。
虽然这个正则表达式更容易适应未来的变化,但它也存在构造困难、可读性差的问题。此外,还有一些细微的布局更改可能会使此正则表达式无法令人满意,例如为标签添加标题属性。
从这个例子可以看出,正则表达式为我们提供了一种抓取数据的捷径,但是这种方法过于脆弱,在页面更新后容易出现问题。好在还有一些更好的解决方案,后面会介绍。
2. 靓汤
Beautiful Soup 是一个非常流行的 Python 模块。该模块可以解析网页并提供方便的界面来定位内容。如果您还没有安装该模块,可以使用以下命令安装其最新版本(需要先安装pip,请自行百度):
使用 Beautiful Soup 的第一步是将下载的 HTML 内容解析成一个汤文档。由于大多数网页没有格式良好的 HTML,Beautiful Soup 需要确定它们的实际格式。例如,在下面这个简单网页的清单中,存在属性值和未闭合标签周围缺少引号的问题。
如果 Population 列表项被解析为 Area 列表项的子项,而不是两个并排的列表项,我们在抓取时会得到错误的结果。让我们看看Beautiful Soup是如何处理它的。
从上面的执行结果可以看出,Beautiful Soup 能够正确解析缺失的引号并关闭标签。现在我们可以使用 find() 和 find_all() 方法来定位我们需要的元素。
注意:由于不同版本的Python内置库容错能力不同,处理结果可能与上述不同。详情请参考::///doc/0ed46eadf9c75fbfc77da26925c52cc58ad6905a.html /software/BeautifulSoup/bs4/doc/#installing-a-pa rser。想知道所有的方法和参数,可以参考 Beautiful Soup 的官方文档
3. Lxml
Lxml 是基于 XML 解析库 libxml2 的 Python 包装器。这个模块是用C语言编写的,解析速度比Beautiful Soup快,但是安装过程比较复杂。最新的安装说明可以在 找到。**
与 Beautiful Soup 一样,使用 lxml 模块的第一步是将可能无效的 HTML 解析为统一格式。以下是使用此模块解析不完整 HTML 的示例:
同样,lxml 正确解析属性周围缺少的引号并关闭标签,但模块不会添加和标签。
解析输入内容后,进入选择元素的步骤,此时lxml
有几种不同的方法,例如
XPath 选择器和 find() 方法,例如 Beautiful Soup。但是,我们将来会使用 CSS 选择器,因为它更简洁,可以在解析动态内容时重用。此外,一些有 jQuery 选择器经验的读者会更熟悉它。
以下是使用 lxml 的 CSS 选择器提取区域数据的示例代码:
代码首先找到ID为places_area__row的表格行元素,然后选择类为w2p_f w的表格数据子标签。
CSS3 规范已由 W3C 提出: /TR/2011/REC-css3-selectors-2011 0929/
Lxml 已经实现了大部分 CSS3 属性,其不支持的功能可以在以下位置找到:ocs.io/en/latest/。
注意:lxml 的内部实现实际上将 CSS 选择器转换为等效的 XPath 选择器。
相关 采集 教程:
鼠标移动显示网站采集需要数据的方法/教程/sbyd
优采云补挖、漏挖功能说明(以金头网采集为例)/tutorial/lcbc
优采云增量采集功能说明/教程/zlcj_7 优采云广告拦截功能说明(采集中文社区网示例)/tutorial/pbgg_7单机采集提示异常信息处理(以新浪微博采集为例) /tutorial/djcjyc_7优采云代理IP功能说明(7.0版本) /tutorial/dlip_7 网页数据采集如何模拟手机终端,人民网的移动终端采集
例如/tutorial/mnsj_7 优采云——90万用户选择的网页数据采集器。
1、简单易用,任何人都可以使用:无需技术背景,只需了解互联网采集。完成流程可视化,点击鼠标完成操作,2分钟快速上手。
2、功能强大,任意网站可选:点击、登录、翻页、身份验证码、瀑布流、Ajax脚本异步加载数据,都可以通过简单的设置进行设置采集.
3、云采集,你也可以关机。配置采集任务后,可以将其关闭,并可以在云端执行任务。巨大的云采集
集群24*7不间断运行,无需担心IP被封,网络中断。
4、功能免费+增值服务,按需选择。免费版功能齐全,可以满足用户的基本需求。
设定要求。同时设置一些增值服务(如私有云),满足高端付费企业用户的需求。