5、网页数据抓取全解析

网页数据抓取全解析

1. 正则表达式抓取数据的局限性

在网页数据抓取中,正则表达式是一种常见的工具。例如,我们想要从网页中提取某个国家的面积数据,最初可能会使用如下正则表达式:

import re
re.findall('<tr id="places_area__row"><td class="w2p_fl"><label for="places_area" id="places_area__label">Area: </label></td><td class="w2p_fw">(.*?)</td>', html)

运行结果:

['244,820 square kilometres']

这个正则表达式能够完成任务,但当网页更新时,它很容易失效。比如表格结构改变,面积数据不再位于第二个匹配元素中。为了让正则表达式更具针对性,我们可以包含带有唯一 ID 的父元素 <tr>

re.findall('''<tr id="places_area__row">.*?<tds*class=["']w2p_fw["']>(.*?)</td>''', html)

运行结果:

['244,820 square kilometres']
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值