2021-05-31

本文介绍了如何使用BeautifulSoup进行网页节点定位,提取电影信息,如标题和评分。针对网站翻页,分析了URL变化规律,展示了通过迭代获取豆瓣电影Top250完整信息的实现方式。讨论了四种翻页策略,并选择URL规律分析法,通过循环动态改变URL的start参数来爬取多页数据。

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

定位节点及网页翻页分析

获取到网站的信息之后,有些信息是融合在一起的,而在数据分析时,通常需要将某些具有使用价值的信息提取出来,并存储至数组、列表或数据库中
两种常见的方法:
(1) 文本分析。从获取的电影简介文本信息中提取某些特定的值,通常采用字符串处理方法进行提取
(2) 节点定位。在写爬虫过程中定位相关节点,然后进行爬取所需节点操作,最后赋值给变量或存储到数据库中

仍然以豆瓣电影Top250为例,结合BeautifulSoup技术,采用节点定位方法获取具体的值。点开HTML网页,检查对应的< li >< /li >节点,可以看到该电影的构成情况,再定位节点内容,如< span class=“title” >节点可以获取标题,< div class=“star” >节点可以获取电影评分和评价人数
在这里插入图片描述
获取节点的核心代码
定位class属性为“item”的div布局后,再调用find_all()函数查找class属性为title的标签,并获取第一个值输出,即title[0]。接着调用find()函数爬取评分信息,通过get_text()函数获取内容

for tag in soup.find_all(attrs={"class":"item"}): 
    title = tag.find_all(attrs={"class":"title"})           #电影名称
    info = tag.find(attrs={"class":"star"}).get_text()      #爬取评分和评论数
    print(title[0])
    print(info.replace('\n',''))
# <span class="title">肖申克的救赎</span>
# 9.72279813人评价

在这里插入图片描述
第一页的25部电影信息就爬取成功了,而该网页共10页,每页显示25部电影,想要获取这250部完整的电影信息呢,就涉及到链接跳转和网站的翻页分析。网站的翻页分析通常有四种方法

(1)点击下一页分析url网址,分析它们之间的规律,这种方法的网站通常采用GET方法进行传值,而有的网站采用局部刷新技术,翻页后的url仍然不变。
(2)获取“下一页”或页码的超链接,再依次调用urllib2.urlopen(url)函数访问URL并实现网页跳转。
(3)分析网站Networks提交请求的参数,通过Python设置参数实现翻页,常用于POST表单。
(4)采用网页自动操作技术,获取下一页按钮或超链接进行自动点击跳转,如selenium技术中的鼠标点击事件
今天采用第一种分析方法
在点击网页中的翻页按钮时,可以看到网址的变化
在这里插入图片描述

第2页URL:https://movie.douban.com/top250?start=25&filter= 
第3页URL:https://movie.douban.com/top250?start=50&filter= 
第10页URL:https://movie.douban.com/top250?start=225&filter=

top250?start=25表示获取第2页(序号为26到50号)的电影信息;top250?start=50表示获取第3页(序号为51到75号)的电影信息,依次类推,我们写一个循环即可获取完整的250部电影信息

i = 0  
while i<10:  
    num = i*25 #每次显示25部 URL序号按25增加  
    url = 'https://movie.douban.com/top250?start=' + str(num) + '&filter='  
    crawl(url)  
    i = i + 1

当i初始值为0,num值为0,获取第1页信息;当i增加为1,num值为25,获取第2页信息;当i增加为9,num值为225,获取第10页的信息

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值