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

本文介绍了Python爬虫解析网页的三种方法:正则表达式匹配,包括`re.match`和`re.search`的用法;BeautifulSoup库的使用,强调了遍历和搜索文档树;并分享了一个项目实战,爬取贝壳网南京房源信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一般来说当我们爬取网页的整个源代码后,是需要对网页进行解析的。


正常的解析方法有三种
①:正则匹配解析
②:BeatuifulSoup解析
③:lxml解析

正则匹配解析:

在之前的学习中,我们学习过爬虫的基本用法,比如/s,/d,/w,*,+,?等用法,但是在对爬取到的网页进行解析的时候,仅仅会这些基础的用法,是不够用的,因此我们需要了解Python中正则匹配的经典函数。

re.match

runoob解释:re.match尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match就会返回none,如果匹配成功,re.match就会返回一个匹配的对象,否则也为null.查看匹配返回的对象要使用group函数的方法。

语法:

re.match(pattern,string,flags=0)

解释:pattern是匹配的正则表达式,string是所要匹配的字符,而flags是标志位,用于匹配区分是否大小写,多行匹配等。具体用法如下列表格:

修饰符 描述
re.I 使得匹配对大小写不敏感
re.M 多行匹配,影响^和$
re.S 使得.匹配包括换行在内的所有字符(正常情况下.不匹配换行符,这个行为很危险,容易被黑客利用绕过)
re.U 根据Unicode字符集解析字符,这个标志影响\w,\W,\b,\B

代码案例:

#!/usr/bin/python
#coding:utf-8
import re
line="Anyone who dreams there gets"
match=re.match(r'(.*) dreams (.*?).*',line,re.M|re.I)
#match1=re.match(r'(.*) Dreams (.*?)',line,re.M)#大小写敏感,匹配会失败
match2=re.match(r'(.*) Dreams (.*?).*',line,re.M|re.I)#非贪婪模式
match3=re.match(r'(.*) Dreams (.*).*',line, re.M|re.I)#贪婪模式
print(match.group())
#print(match1.group())
print(match2.group())
print("match 0:",match.group(0))#Anyone who dreams there gets
print("match 1:",match.group(1))#Anyone 
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值