赞
踩
简介:python爬虫简单入门,利用Requests和BeautifulSoup第三方库爬取酷狗榜单Top500的信息
思路:
(1)爬取的页面内容
(2)网页版无法手动翻页,所以我们手动将网址上的数字1改为2,就会跳转到第二页,这为我们后面翻页爬取Top500信息有帮助,每页显示22首歌,我们爬取24页,就能将500首歌的信息全部爬取完成。
(3)我们需要爬取的信息如上图
爬取过程:
1、获得页面信息
import requests
head={'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36'}
url="https://www.kugou.com/yy/rank/home/1-8888.html?from=rank"
re=requests.get(url,headers=head)
print(re.text)
通过上面代码我们会获取第一页酷狗Top500的网页信息,如下图所示,将其命名为1.html
2、解析页面
本次解析页面,我们先建立一个testBs4.py文件,在testBs4.py中的代码如下获得我们想要的信息
from bs4 import BeautifulSoup file =open("1.html", "rb") html = file.read() bs = BeautifulSoup(html,"html.parser") ranks=bs.select('span.pc_temp_num') titles=bs.select('div.pc_temp_songlist>ul>li>a.pc_temp_songname') times=bs.select('span.pc_temp_tips_r>span.pc_temp_time') for rank,title,time in zip(ranks,titles,times): data={ 'rank':rank.get_text().strip(), 'songname':title.get_text().split('-')[0].strip(), 'singer':title.get_text().split('-')[1].strip(), 'songtime':time.get_text().strip() } print(data)
最后输出数据以下
3、整个代码
#@Author:Kingsley # -*- codeing = utf-8 -*- #@time :2022/9/22 0022 20:43 #@File: main.py #@Software: PyCharm import requests from bs4 import BeautifulSoup import time head={'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36'} #解析获取的网页 def get_info(url): kg_data=requests.get(url,headers=head) bs=BeautifulSoup(kg_data.text,'lxml') ranks = bs.select('span.pc_temp_num') titles = bs.select('div.pc_temp_songlist>ul>li>a.pc_temp_songname') times = bs.select('span.pc_temp_tips_r>span.pc_temp_time') for rank, title, time in zip(ranks, titles, times): data = { 'rank': rank.get_text().strip(), 'songname': title.get_text().split('-')[0].strip(), 'singer': title.get_text().split('-')[1].strip(), 'songtime': time.get_text().strip() } print(data) if __name__=='__main__': urls= ["https://www.kugou.com/yy/rank/home/{}-8888.html?from=rank".format((str(i))) for i in range(1,25) ] for url in urls: get_info(url) time.sleep(2)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。