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

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

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

最新文章
词典分词算法详解:从基础到高效实现
2. 词典分词 2.1 什么是词2.2 词典2.3 切分算法2.4 字典树2.5 基于字典树的其它算法2.6 HanLP的词典分词实现中文分词:指的是将一段文本拆分为一系列单词的过程,这些单词顺序拼接后等于原文本。中文分词算法大致分为基于词典
从销售到 AI 算法工程师 | 转行人工智能大模型(含面经&裁员幸存指南)
我叫王东,90后,和大家分享一下我的人工智能转型之路。 农学毕业,投身互联网做销售 机遇难求,养殖梦碎 我是土生土长的农村人,小时候经常和小鱼小虾打交道,上大学的时候就选择了农学专业,
华为Mate60Pro如何开启5G模式
今天咱们就聊聊华为Mate60Pro如何开启5G模式的小技巧,不少朋友都在问这事儿,那咱们就一块儿看看。华为Mate60Pro作为华为的旗舰机型,支持5G网络是标配。想要开启5G模式,其实操作起来挺简单的。确保你的手机卡是5G套餐,这是前提条件。咱
SEO优化秘诀:有效提升网站搜索排名的实用技巧
  在当今数字化的时代,网站的搜索排名对于任何一家企业而言都至关重要。毕竟,大部分潜在客户在寻找产品或服务时,首先会依赖于搜索引擎。那么,如何让自己的网站在众多竞争者中脱颖而出,获得更高的搜索排名呢?下面,就让我们一起探索
百度极速版2024最新版本 v6.40.0.11 安卓官方版
第 18 楼 广东韶关客人 发表于: 2023/12/3 18:49:55 好,专门用来浏览网页的,不错。 支持( 14 ) 盖楼(回复) 第 17 楼 上海网友 发表于: 2023/11/11 23:09:11 还是极速版好用 支持( 17 ) 盖楼(回复) 第 16 楼 四川广元苍溪县客
酷派最新动态,引领科技创新,塑造未来智能生态
酷派发布最新新闻,积极引领科技创新,致力于塑造未来智能生态。该公司不断推出新技术和产品,以满足消费者日益增长的需求。酷派以其卓越的研发能力和技术实力,成为智能生态领域的佼佼者,不断推动行业向前发展。本文目录导读:酷派最新新
如何优化B站关键词排名:Bibi搜索排名实战攻略
在视频内容日益成为主流消费选择的今天,B站作为中国最流行的视频分享平台之一,成了许多内容创作者展示才华、分享知识的舞台。然而,在竞争激烈的网络环境中,如何提升自己视频内容的B站关键词排名,让目标观众更容易发现,成了许多UP主和
郭碧婷怀三胎了?穿孕妇裙步子笨重比向佐都壮,牵手逛街好恩爱
郭碧婷自从嫁入豪门就变成了全职家庭主妇,相比于当女明星的时候,消息也少了很多。很多人猜测郭碧婷在豪门中过得并不幸福,虽然钱足够,有婆婆向太把她当亲女儿一样宠爱,但是作为老公的向佐就多少有点不尽责了,屡屡被传出出轨,很多重要
经典俄罗斯方块黑白版免费下载
说起俄罗斯方块相信没有人会感到陌生,以往每到逢年过节时出去走亲戚,无聊的时候就会拿出那种老式的黑白游戏机玩上几局。如今黑白游戏机早已不见踪影,经典的俄罗斯方块却是经久不衰,那今天小编带来的就是《经典俄罗斯方块黑白版》,游戏
评选公开:上海专业白癜风医院排名“榜单推荐”白癜风症状,哪些不良习惯被认为是引发皮肤白斑的催化剂?
评选公开:上海专业白癜风医院排名“榜单推荐”白癜风症状,哪些不良习惯被认为是引发皮肤白斑的催化剂?上海白癜风医院排名:1、上海美申白癜风医院2、上海正规白癜风医院3、上海皮肤科医院4、上海专业的白癜风医院5、上海白癜风的治疗,
相关文章
推荐文章
发表评论
0评