Python学习-爬取酷狗TOP500的数据

分析网址结构

1、原网址结构

页数URL
1https://www.kugou.com/yy/rank/home/1-8888.html?from=rank
2https://www.kugou.com/yy/rank/home/2-8888.html?from=rank
3https://www.kugou.com/yy/rank/home/3-8888.html?from=rank
23https://www.kugou.com/yy/rank/home/23-8888.html?from=rank

共23页500条数据
2、分析URL地址
分析可知网址结构的公共部分为:https://www.kugou.com/yy/rank/home/{?}-8888.html?from=rank

{?}:变量部分

3、构造URL循环列表
使用for循环构造列表内容,代码如下:

// An highlighted block
urls = ['https://www.kugou.com/yy/rank/home/{}-8888.html?from=rank'.format(number) for number in range(1, 24)]  # 总共23URL

代码编写

需要引入requests、BeautifulSoup和time库,代码如下:

// An highlighted block
import requests
from bs4 import BeautifulSoup
import time

headers = {'user-agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36'}

#开始获取数据
def get_info(url):
    result = requests.get(url,headers=headers)
    soup = BeautifulSoup(result.text,'html.parser')
    ranks = soup.select('span.pc_temp_num')
    links = soup.select('div.pc_temp_songlist > ul > li > a')
    titles = soup.select('div.pc_temp_songlist > ul > li > a')
    times = soup.select('div.pc_temp_songlist > ul > li > span.pc_temp_tips_r > span')
    for rank,link,title,time in zip(ranks,links,titles,times):#多重循环
        data = {
            'rank':rank.get_text().strip(),
            # 'title':title.get_text().strip(),
            'link':link.get('href'),#歌曲链接
            'singer':title.get_text().strip().split('-')[0],
            'song':title.get_text().strip().split('-')[1],
            'time':time.get_text().strip()
        }
        print(data)


if __name__=='__main__':
    urls = ['https://www.kugou.com/yy/rank/home/{}-8888.html?from=rank'.format(number) for number in range(1, 24)]  # 总共23URL
    # get_info(urls[0])
    i=0
    for url in urls:
        i=i+1
        print("爬取第{}页数据".format(i))
        get_info(url)
        time.sleep(1)#程序暂停1

运行结果

爬取结果展示

END

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
当涉及到爬取网页数据时,有几种常见的方法和工具可以使用。以下是一个简单的教程,介绍了一种常见的爬取网页数据的方法: 1. 选择合适的编程语言:爬取网页数据通常需要使用编程语言来编写代码。常见的选择包括Python、Java和JavaScript等。其中,Python是最受欢迎的语言之一,因为它有许多强大的库和框架可以用于爬虫开发。 2. 安装必要的库和工具:对于Python来说,你可以使用一些流行的库来进行网页数据爬取,例如Requests、BeautifulSoup和Scrapy等。你可以使用pip命令来安装这些库。 3. 发送HTTP请求:使用HTTP请求库(如Requests)发送HTTP请求到目标网页。你可以发送GET请求获取网页内容,或者发送POST请求提交表单数据。 4. 解析网页内容:使用HTML解析库(如BeautifulSoup)解析网页内容。这样你就可以提取出你感兴趣的数据,例如标题、链接、文本等。 5. 存储数据:将提取到的数据存储到合适的地方,例如数据库、CSV文件或者Excel表格中。 6. 处理反爬机制:有些网站可能会采取反爬机制,例如限制访问频率、验证码等。你可能需要使用代理IP、用户代理、验证码识别等技术来绕过这些限制。 7. 遵守法律和道德规范:在进行网页数据爬取时,务必遵守相关的法律和道德规范。尊重网站的隐私政策和使用款,并确保你的爬虫行为不会对网站造成过大的负担。 希望以上教程对你有所帮助!如果你有任何进一步的问题,请随时提问。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值