爬虫代码示例
(酷狗音乐top500榜单内容的爬取)
前言
综合利用Requests,Beautiful Soup等第三方库爬取网页信息,尤其是爬虫内容的筛选,利用strip,以及split方法来进行内容的选择。
提示:以下是本篇文章正文内容,下面案例可供参考
一、实验目的?
掌握综合运用Requests,Xpath以及Beautiful Soup等第三方库爬取网页信息的方法。
二、实验过程
1.实验环境(pycharm)
import requests from bs4 import BeautifulSoup from fake_useragent import UserAgent
2.需求说明
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首歌曲。
3.实验代码
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))
- str -- 分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。
- num -- 分割次数。默认为 -1, 即分隔所有。
经过split方法处理:
返回结果为:
经过strip方法处理
返回结果为:
strip():
string.strip([characters])
其中,string
是要修改的文本,characters
(可选)是要删除的特定字符列表。如果没有提供字符,strip
将删除任何前导或尾部空白。
爬虫的提取内容经过处理后,可以得到我们想要的结果,实战完成。