分享好友 最新动态首页 最新动态分类 切换频道
4种Python爬虫的网页解析方式,总有一款你喜欢的,值得收藏
2024-12-26 20:57

用Python写爬虫工具在现在是一种司空见惯的事情,每个人都希望能够写一段程序去互联网上扒一点资料下来,用于数据分析或者干点别的事情。

4种Python爬虫的网页解析方式,总有一款你喜欢的,值得收藏

我们知道,爬虫的原理无非是把目标网址的内容下载下来存储到内存中,这个时候它的内容其实是一堆HTML,然后再对这些HTML内容进行解析,按照自己的想法提取出想要的数据,所以今天我们主要来讲四种在Python中解析网页HTML内容的方法,各有千秋,适合在不同的场合下使用。

首先我们随意找到一个网址,这时我脑子里闪过了豆瓣这个网站。嗯,毕竟是用Python构建的网站,那就拿它来做示范吧。

我们找到了豆瓣的Python爬虫小组主页,看起来长成下面这样。

Python爬虫解析网页的4种方式 值得收藏

让我们用浏览器开发者工具看看HTML代码,定位到想要的内容上,我们想要把讨论组里的帖子标题和链接都给扒出来。

Python爬虫解析网页的4种方式 值得收藏

通过分析,我们发现实际上我们想要的内容在整个HTML代码的 <table class="olt">这个区域里,那我们只需要想办法把这个区域内的内容拿出来就差不多了,现在开始写代码。

正则表达式通常被用来检索、替换那些符合某个模式的文本,所以我们可以利用这个原理来提取我们想要的信息。

参考以下代码。

在代码第6行和第7行,需要手动指定一下header的内容,装作自己这个请求是浏览器请求,否则豆瓣会视为我们不是正常请求会返回HTTP 418错误。

在第7行我们直接用requests这个库的get方法进行请求,获取到内容后需要进行一下编码格式转换,同样是因为豆瓣的页面渲染机制的问题,正常情况下,直接获取requests content的内容即可。

Python模拟浏览器发起请求并解析内容代码:

 

正则的好处是编写麻烦,理解不容易,但是匹配效率很高,不过时至今日有太多现成的HTMl内容解析库之后,我个人不太建议再手动用正则来对内容进行匹配了,费时费力。

主要解析代码:

 
 

这个库其实是我个人最喜欢的库,作者是编写requests库的网红程序员 Kenneth Reitz,他在requests的基础上加上了对html内容的解析,就变成了requests-html这个库了。

下面我们来看看范例

我喜欢用requests-html来解析内容的原因是因为作者依据帮我高度封装过了,连请求返回内容的编码格式转换也自动做了,完全可以让我的代码逻辑简单直接,更专注于解析工作本身。

主要解析代码:

 

安装途径:

 
 

大名鼎鼎的 BeautifulSoup库,出来有些年头了,在Pyhton的HTML解析库里属于重量级的库,其实我评价它的重量是指比较臃肿,大而全。

还是来先看看代码。

 

BeautifulSoup解析内容同样需要将请求和解析分开,从代码清晰程度来讲还将就,不过在做复杂的解析时代码略显繁琐,总体来讲可以用,看个人喜好吧。

安装途径:

 
 

lxml这个库同时 支持HTML和XML的解析,支持XPath解析方式,解析效率挺高,不过我们需要熟悉它的一些规则语法才能使用,例如下图这些规则。

来看看如何用XPath解析内容。

主要解析代码:

 
 

如上图,XPath的解析语法稍显复杂,不过熟悉了语法的话也不失为一种优秀的解析手段。

安装途径:

 
 

正则表达式匹配不推荐,因为已经有很多现成的库可以直接用,不需要我们去大量定义正则表达式,还没法复用,在此仅作参考了解。

BeautifulSoup是基于DOM的方式,简单的说就是会在解析时把整个网页内容加载到DOM树里,内存开销和耗时都比较高,处理海量内容时不建议使用。不过BeautifulSoup不需要结构清晰的网页内容,因为它可以直接find到我们想要的标签,如果对于一些HTML结构不清晰的网页,它比较适合。

XPath是基于SAX的机制来解析,不会像BeautifulSoup去加载整个内容到DOM里,而是基于事件驱动的方式来解析内容,更加轻巧。不过XPath要求网页结构需要清晰,而且开发难度比DOM解析的方式高一点,推荐在需要解析效率时使用。

requests-html 是比较新的一个库,高度封装且源码清晰,它直接整合了大量解析时繁琐复杂的操作,同时支持DOM解析和XPath解析两种方式,灵活方便,这是我目前用得较多的一个库。

除了以上介绍到几种网页内容解析方式之外还有很多解析手段,在此不一一进行介绍了。

爬虫的基本技能,最重要的两点就是如何抓取数据,如何解析数据,我们要活学活用,在不同的时候利用最有效的工具去完成我们的目的。

最新文章
立马get!信管家期货软件:功能全面、操作便捷的投资利器
信管家是一款专为证券、期货公司设计的综合性投资管理工具,旨在帮助投资者高效管理资金和控制交易风险。作为国内主流的期货、证券及外汇行情显示软件,信管家支持国内外多个市场的实时行情及图表显示,满足24小时全球品种看盘需求。自推出
当我们在谈 AI Ready的时候,是在谈什么?
“AI Ready 即一个组织为有效利用人工智能(AI)构建竞争力而做好全面准备的状态。这种准备涉及到战略、技术、数据、流程、人员和文化等多个方面。”大部分企业在 AI 应用方面还存在许多限制和挑战,包括组织创新意识不
高级数据分析专员和学术专员有什么区别
岗位职责 1.观远ETL产出宽表和定期业务报表; 2.运用GrowingIO分析前台的用户行为数据,并且形成产品层面的数据报表; 3.梳理各个前台业务的「指标体系」并且落地,并且持续与业务Leader讨论并且完善之; 岗位要求 1、信息统计、数学及应用
珠海SEO优化费用全解析,性价比与服务双重考量
珠海SEO优化收费全解析,涵盖、服务及性价比。文章详细解读不同级别SEO优化方案,帮助读者了解市场行情,实现预算与效果的完美平衡。随着互联网的普及,越来越多的企业开始重视网络营销,SEO优化成为提升企业网站排名、增加流量的重要手段
优化关键词排名提高网站搜索引擎可见性
在当今数字化时代,网站已经成为企业重要的营销渠道。但是,一个成功的网站需要考虑到很多方面,其中包括网站的内容、设计、用户体验以及搜索引擎优化(SEO)。其中,关键词排名对于SEO至关重要,因为它可以提高网站的可见性和流量。本文将
OPPO K5如何一键获取root权限
想玩修改游戏,想运行XP框架,想用游戏脚本刷BOSS,苦于手机不能ROOT,找不到ROOT的方法,怕手机ROOT后不能保修。手机通过ROOT后,我们可以获得最高的手机管理权限,根据自己的喜好来对自己的手机进行个性化设置就成为了智能手机玩家最爱好
没有基础能学seo吗知乎
自学可以学会SEO。刚开始学习SEO,先找到SEO免费培训教程。例如,SEOSOZ;然后,按照SEO教程,持之以恒地学习,不半途而废,不断学习,温故知新;最后,执行学到的SEO知识。在实战过程中,不断改善自己的SEO技术,积累SEO经验。越来越多的
高曝光,低点击关键词的优化技巧,提升直通车点击率。
作者:白泽无论是在大促节日还是在平时的日常运营,大部分小伙伴都会遇到过一些高曝光点点击,甚至0点击量的关键词,这些关键词大部分都是我们直通车推广带来的,同时,这些高曝光的关键词的点击量和点击率都是非常低的,甚至没有点击量,
茂名SEO优化,助力企业互联网营销新篇章
随着互联网的快速发展,企业对于网络营销的需求日益增长。在众多互联网营销手段中,SEO作为一种低成本、高回报的营销方式,受到越来越多企业的青睐。地区作为我国重要的石化基地,众多企业纷纷投身于SEO优化,以期在激烈的市场竞争中脱颖而
谷歌浏览器(Google Chrome)v98.0.4758.102
谷歌浏览器(Google Chrome)v98.0.4758.102是一款简易实用,功能全面的Web浏览工具,目前浏览器市场占有率绝对第一,谷歌浏览器带给用户高速、稳定、安全的网络浏览体验,有喜欢的小伙伴快来下载吧!Chrome简约的菜单和标签选项卡:chrome浏
相关文章
推荐文章
发表评论
0评