爬虫时如何查找匹配自己想要的信息

本文介绍了在爬虫学习初期如何从HTML结构中查找并提取所需信息,以爬取电影信息为例,利用Requests和BeautifulSoup解析网页,通过find方法定位电影的名称和简介,使用正则表达式清理不必要的字符,实现数据的批量化存储。
摘要由CSDN通过智能技术生成

在我学习爬虫的初期,我觉得比较麻烦、比较困扰的一点,就是从已有的html结构树里面搜索哪些是我要的信息。因为需要使用find与特定条件来获取目标信息,这样程序才能快速的实现批量化存储数据。

接下来用一个例子实践一下如何查找匹配对象。

爬取电影信息

首先使用Requests和BeautifulSoup获得解析后的结构树

url = 'http://movie.douban.com/top250?start=%d&filter='%(i)
    #通过url的改变来实现翻页爬虫,爬前4页共200个电影
    headers = {
   
    'User-Agent': 'Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.1.6)' }
    # 伪装为浏览器
    html = requests.get(url, headers=headers).content
    soup = BeautifulSoup(html.decode('utf-8'))

相较于直接去网页查看源代码,格式化输出的结构树看起来更加友好。上述代码输出的结构树如下图所示:
在这里插入图片描述

这一个图片中包含了两个电影的基本信息。

基本的寻找思路是:找到所有电影有共性的部分,以这部分作为格式化索引,对于同一个变量提取每一个电影的不同值。这里我们选择提取电影的“名称”、“简介页信息”。

首先看到红圈部分的<div class='item'>,树结构中所有的标签都是前后对应的,与<div class='item'>对应的则是</div>。在每一部电影信息的开头都有<div class='item'>,就说明它是每部信息的独立标识标签,每一部电影信息的这个标签都是相同的,只是此<div> 中具体的内容有所不同。

因此<div class='item'>就可以作为我们标记每部电影的唯一标志,在具体操作中,使用find找到所有<div class='item'>模块,每个模块代表一部电影,接下来再在各部电影结构树内部提取具体信息。

在使用find的时候需要注意

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值