【Python】采集网页-匹配多行-正则表达式换行符

在Python网页采集过程中,遇到源码包含换行符导致的多行匹配问题,可以采取两种方法解决。一是替换源码中的换行符,二是使用正则表达式的[sS]来匹配任意字符包括换行。本文提供了具体实现和参考资料。
摘要由CSDN通过智能技术生成

页面源码中带有换行符,或者想匹配多行内容,

<h3 id="hello">HelloWorld!</h3>
<ul>                            #要抓取<ul>~</ul>之间的内容,即多行,包含\n
<li>                            #如何解决?
<p>This is a big world!</p>
</li>
<li>
<p>where are you from?</p>
</li>
</ul>

解决方法:

1.匹配前做处理:在获取页面源码后,用replace过滤掉所有的\n, 这样在匹配目标内容时,不再需要考虑\n.

html = html.replace('\n', '')
target_contents = re.findall(r'r'<h3 id="hello">HelloWorld!</h3><ul>(.*?)</ul>'', html)

2.不处理抓取出来的源码, 在匹配时,注意正则表达式,不使用'.' ,使用[\s\S]:

\s    -->   匹配任何空白字符,包括空格、制表符、换页符等等。等价于[ \f\n\r\t\v]。
\S   -->   匹配任何非空白字符。等价于[^ \f\n\r\t\v]。

target_contents =
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值