分享好友 最新动态首页 最新动态分类 切换频道
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解析两种方式,灵活方便,这是我目前用得较多的一个库。

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

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

最新文章
重大.来袭“同乡游万能开挂器免费”必胜开挂神器
有 亲,根据资深记者爆料有没有微乐开挂成功的,确实有挂您好,微乐家乡麻将,确实是有挂的,很多玩家在这款游戏中打牌都会发现很多用户的牌特别好,总是好牌,而且好像能看到其他人的牌一样。所以很多小伙伴就怀疑这款游戏是不是有挂,实
跨境数据流动:打造数字经济发展新优势的关键抓手
□ 中国宏观经济研究院 徐策 中国经济信息网 曹 樱 左登基□ 党的二十大报告提出,加快发展数字经济,促进数字经济和实体经济深度融合,打造具有国际竞争力的数字产业集群。党的二十届三中全会决定提出,建立高效便利安全的数据跨境流动机
置顶服务商快速创建的小程序如何开通云开发?精选热门
背景第三方服务商进行开发时,利用微信开放平台接口可以快速创建小程序,实现快速商业化。现在,服务商快速创建的小程序也可以开通云开发了,具体操作步骤如下:一、更新信息服务商需要告知小程序所有者,前往微信公众平台mp.weixin.qq.com
钛动科技闪耀量子位MEET2025与零一万物、商汤科技等共探AI新浪潮
12月11日,【智变千行,慧及百业】MEET 2025智能未来大会圆满落幕。MEET智能未来大会由量子位主办,凭借其高规格的参会阵容、前瞻性的议题设置以及丰富的成果展示,成为国内最具影响力的智能产业年度活动之一。大会现场人声鼎沸,云集超过5
高效电商平台打造指南,从规划到上线的贸易网站搭建全攻略
本文为您提供贸易网站搭建全攻略,涵盖从规划到上线的全过程。包括市场调研、功能需求分析、技术选型、界面设计、内容填充、测试优化等关键步骤,助力您打造高效、易用的电商平台,实现线上贸易的便捷与高效。确立网站定位网站规划与设计功
揭秘台州百度SEO:台州关键词优化的黄金法则!
台州百度SEO关键词优化、台州百度SEO关键词、台州关键词优化、台州SEO优化、台州百度SEO等问题可联系我们,我们拥有20年SEO、优化服务经验。在互联网营销的浪潮中,台州百度SEO关键词优化无疑是一门艺术,也是一种科学。它不仅仅是对搜索引
竞价推广代运营服务公司:打造专业高效的广告团队!
标题:竞价推广代运营服务公司:打造专业高效的广告团队!在现代商业环境中,广告推广已经成为企业成功的重要因素之一。而竞价推广作为一种高效的网络广告方式,已经越来越受到企业的青睐。然而,如何打造一支专业高效的广告团队,实现竞价
TCL冬季发布会倒计时2天,灵控桌面再升级?点亮爆满神技能!
好家伙,这个年末电视圈真是热闹了!据悉,TCL马上要在16号举办光生万象2024 TCL QD-Mini LED新技术发布会,现在距离发布会还有2天,官方释放了两张倒计时海报,也是钓足了我们这些观望的数码分子的胃口!据我观测,这次TCL很有可能会在现
高清美女写真生成神器:用AI绘画打造你的虚拟女友!
限时免费,点击体验最近超火的AI生图神器,坐拥3000美女的大男主就是你! https://ai.sohu.com/pc/generate/textToImg?_trans_=030001_yljdaimn 在如今这个技术飞速发展的时代,AI绘画工具已经逐渐渗透进我们的生活,尤其是在美女写真生成
spider php 采集,长腿蜘蛛 WP-CTspider 自动采集发布插件及配置教程
WordPress自动采集发布插件CTspider插件可以采集来自于任何网站的内容并全自动更新你的WordPress站点。最新WP-CTspider插件版本提高插件的兼容性,和抓取速度,最新版本不在兼容PHP7.0以下环境,它使用非常简单,
相关文章
推荐文章
发表评论
0评