python爬虫学习系列之正则、bs4、xpath、jsonpath

本文介绍了Python爬虫中常用的四种解析技术:正则表达式用于基础匹配,BeautifulSoup(BS4)解析HTML,XPath处理XML文档,以及JsonPath解析JSON数据。讲解了各自的基本用法和关键函数,如正则的match、search、findall,BS4的文档对象处理,XPath的路径表达式,以及JsonPath在处理JSON数据中的应用。

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

python爬虫学习系列之正则、bs4、xpath、jsonpath

正则

正则规则:
	单字符:
       .:除换行符外的所有字符
		[]:[aoe]a,o,e之中的一个;[a-w]a到w之间任意一个字符
		\d:数字[0-9]
		\D:非数字
		\w:数字,字母,下划线,中文
		\W:非\w
		\s:所有的空白字符
		\S:所有的非空白
	数量修饰:
		*:任意多次,大于等于0+:至少一次,>=1:可有可无,0次或者1{
   m}:固定m次
		{
   m,}:至少m次
		{
   m,ne}:至少m次,最大n次
	边界
		\b
		\B
		$:以某某开头
		^:以某某结尾
	分组:
		():(ab){
   4}视为一个整体,
		():子模式  \组模式  \1,\2
	贪婪模式:
		.*.+

match :只从最开始找
search:从任意位置找
findall:找所有
re.sub(正则表达式,替换的内容,查找的字符串)

import re
string='<p><div><span>猪八戒</span></div></p>'
pattern=re.compile(r'<(\w+)><(\w+)>\w+</\2></\1>')
ret=pattern.search(string)
print(ret)
#输出:<re.Match object; span=(3, 30), match='<div><span>猪八戒</span></div>'>

string='<p><div><div>猪八戒<div></div></p>'
pattern=re.compile(r'<div>.*</div>')
# pattern=re.compile(r'<div>.*?</div>')
ret=pattern.search(string)
print(ret)
#输出:<re.Match object; span=(3, 27), match='<div><div>猪八戒<div></div>'>

#	re.I:忽略大小写
#	re.M:多行匹配
#	re.S:单行匹配
string='''hate is a beautiful feel
love you
love 
love '''
pattern=re.compile(r'^love',re.M)
ret=pattern.findall(string)
print(ret)
#输出:['love', 'love', 'love']

string1='''<div>沁园春-雪
北国风光
千里冰封
万里雪飘
望长城内外
惟余莽莽
大河上下
顿失滔滔
山舞银蛇
原驰蜡象
欲与天公试比高
</div>'''
pattern=re.compile(r'<div>(.*?)</div>',re.S)
ret=pattern.findall(string1)
print(ret)
#输出:['沁园春-雪\n北国风光\n千里冰封\n万里雪飘\n望长城内外\n惟余莽莽\n大河上下\n顿失滔滔\n山舞银蛇\n原驰蜡象\n欲与天公试比高\n']


# match :只从最开始找
# search:从任意位置找
# findall:找所有
# re.sub(正则表达式,替换的内容,查找的字符串)

string ='i love you,you love me'
pattern=re.compile(r'love')
ret=re.sub(pattern,'hate',string)
print(ret)
#输出:i hate you,you hate me
ret=re.sub(r'love','hate',string)
print(ret)
#输出:i hate you,you hate me
ret=pattern.sub('hate',string)
print(ret)
#输出:i hate you,you hate me
print(string)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值