赞
踩
(酷狗音乐top500榜单内容的爬取)
综合利用Requests,Beautiful Soup等第三方库爬取网页信息,尤其是爬虫内容的筛选,利用strip,以及split方法来进行内容的选择。
提示:以下是本篇文章正文内容,下面案例可供参考
掌握综合运用Requests,Xpath以及Beautiful Soup等第三方库爬取网页信息的方法。
import requests from bs4 import BeautifulSoup from fake_useragent import UserAgent
1)爬取酷狗音乐网站中酷狗Top500榜单中的前5页信息。
2)酷狗Top500网址:http://www.kugou.com/yy/rank/home/1-8888.html
3)该处使用的url网络请求的数据。因为网页版酷狗不能手动翻页进行下一步浏览,可以通过观察第一页URL:
http://www.kugou.com/yy/rank/home/1-8888.html
将数字1换成2、3等,每页显示22首歌曲。
- import requests
- from bs4 import BeautifulSoup
- from fake_useragent import UserAgent
-
-
- def spider_kugou():
- for i in range(1, 6):
- url = f"https://www.kugou.com/yy/rank/home/{i}-8888.html"
- ua = UserAgent()
- headers = {'User-Agent': ua.chrome}
- resp = requests.get(url, headers=headers)
- soup = BeautifulSoup(resp.text, 'lxml')
- ranks = soup.select('span.pc_temp_num')
- songs = soup.select('div.pc_temp_songlist > ul > li > a')
- times = soup.select('span.pc_temp_time')
- for rank, song, time in zip(ranks, songs, times):
- temp = song.get_text().split(' - ')
- data = {
- "rank": rank.get_text().strip(),
- "song": temp[0].strip(),
- "singer": temp[1].strip(),
- "time": time.get_text().strip()
- }
- print(data)
-
-
- if __name__ == '__main__':
- spider_kugou()

记录一下split以及strip方法的使用教程
eg:这个是未经过处理过的text字符串)
split():
str.split(str="", num=string.count(str))
经过split方法处理:
返回结果为:
经过strip方法处理
返回结果为:
strip():
string.strip([characters])
其中,string
是要修改的文本,characters
(可选)是要删除的特定字符列表。如果没有提供字符,strip
将删除任何前导或尾部空白。
爬虫的提取内容经过处理后,可以得到我们想要的结果,实战完成。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。