爬虫使用Beautiful Soup爬取网页信息示例代码(酷dog音乐)

爬虫代码示例

(酷狗音乐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 将删除任何前导或尾部空白。

爬虫的提取内容经过处理后,可以得到我们想要的结果,实战完成。

  • 20
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值