实验1.4 简单静态网页爬取综合实验
一、实验目的
掌握综合运用Requests,Xpath以及Beautiful Soup等第三方库爬取网页信息的方法。
二、实验内容和步骤
(1)网页版酷狗不能手动翻页进行下一步浏览,可以通过观察第一页URL:
http://www.kugou.com/yy/rank/home/1-8888.html 将数字1换成2、3等,每页显示22首歌曲。
(2)可爬取到的信息包括:排名情况,歌手,歌曲名和歌曲时间。
程序代码:
import requests
from bs4 import BeautifulSoup
import time #导入相应的库文件
headers = {
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36 Edg/114.0.1823.58'
} #加入请求头
def get_info(url): #定义获取信息的函数
wb_data = requests.get(url,headers=headers)
soup = BeautifulSoup(wb_data.text,'lxml')
ranks = soup.select('span.pc_temp_num') #排名
singers = soup.select('div.pc_temp_songlist > ul > li > a > span') #歌手
titles = soup.select('div.pc_temp_songlist > ul > li > a ') #歌名
times = soup.select('span.pc_temp_tips_r > span') #时长
for rank,singer,title,time in zip(ranks,singers,titles,times):
data = {
'rank':rank.get_text().strip(),
'singer':singer.get_text(),
'title':title.get_text().split('-')[0], #通过split获取歌手和歌曲信息
'time':time.get_text().strip()
}
print(data) #获取爬虫信息并按字典格式打印
if __name__ == '__main__': #程序主入口
urls = ['http://www.kugou.com/yy/rank/home/{}-8888.html'.format(str(i)) for i in range(5) ] #构造多页url
for url in urls:
get_info(url) #循环调用get_info函数
time.sleep(1) #睡眠1秒
实验结果:
三、实验心得
通过这次实验,我学会了如何使用Requests库发送HTTP请求来获取网页的内容。同时,我还学会了使用Xpath和Beautiful Soup这两个第三方库来解析网页内容,提取出我所需要的信息。
在实验过程中,我遇到了一些困难和问题,但通过查阅文档和尝试不同的方法,最终成功解决了这些问题。这次实验对我来说是一次很好的学习机会,让我更加熟悉了Python爬虫的基本操作。
通过这次实验,我也意识到了爬虫在实际应用中的重要性。无论是获取新闻资讯、产品信息还是进行数据分析,爬虫都可以帮助我们快速、准确地获取所需的信息。我相信在将来的工作中,这些技能一定会派上用场。