利用python爬虫爬取酷狗Top500歌曲

实验目的

  1. 爬虫的概念及准备工作。
  2. 了解爬虫的类型
  3. 理解爬虫的实现原理。
  4. 熟悉爬虫三大库:requests、BeautifulSoup、Lxml,安装三个模块,并熟悉其使用
  5. 通过对爬虫基础知识及Python爬虫程序设计中所涉及的三大库的学习,本节以获取酷狗网站"TOP500歌曲排行榜"数据为例,实战练习基于Python的简单爬虫程序设计思路及实现过程。

实验过程

  1. 通过阅读教材和上网查阅资料了解网络爬虫的现实意义及进行网络爬虫的准备工作:对所爬站点的规模和结构进行大致了解,获取站点自身的robots.txt和sitemap文件。
  2. 了解爬虫类型:通用网络爬虫、聚焦网络爬虫、增量式网络爬虫和深层网络爬虫。
  3. 理解网络爬虫原理及工作流程。
  4. 下载安装Requests库并熟悉其基本使用,掌握爬取定向网页的通用代码框架
  5. 下载安装BeatifulSoup库并熟悉其基本使用
  6. 下载安装Lxml库并熟悉其基本使用
  7. 按照如下步骤完成酷狗网站"TOP500歌曲排行榜"的网页爬取:
    >(1)导入Requests模块、BeautifulSoup模块和Time模块
    (2)定义文件头,模拟浏览器访问,防止网站屏蔽
    headers ={’User-Agent’: ’Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.112 Safari/537.36’}
    (3)定义get_info()函数,获取TOP500信息
    (4)定义实现get_info()函数,用于获取标签中的指定数据
    (5)定义条件main函数,用于获取排行榜数据地址
    (6)定义for循环遍历urls
    (7)代码行调用time模块睡眠函数

源代码

import requests
from  bs4 import BeautifulSoup
import time
headers={'User.Agent':'Mozilla/5.0(Windows NT 6.1;WOW64) AppleWebKit/537.36(KHTML,like Gecko) ''Chrome/56.0.2924.87 Safari/537.36'}
def get_info(url):
    wb_data=requests.get(url,headers=headers)
    soup=BeautifulSoup(wb_data.text,'lxml')
    ranks=soup.select('span.pc_temp_num')
    titles=soup.select('div.pc_temp_songlist>ul>li>a')
    times=soup.select('span.pc_temp_tips_r>span')
    for rank,title,time in zip(ranks,titles,times):
        str1=title.get_text().split('-')
        data={'rank':rank.get_text().strip(),
              'singer':str1[0],
              'song':str1[-1],
              'time':time.get_text().strip()
              }
        print(data)
if __name__ == '__main__':
    urls=[
     'http://www.kugou.com/yy/rank/home/{}-8888.html'.format(i) for i in range(1,24)]
    for url in urls:
        get_info(url)
        time.sleep(2)

相关推荐

发表评论

邮箱地址不会被公开。 必填项已用*标注

微信扫一扫

微信扫一扫

微信扫一扫,分享到朋友圈

利用python爬虫爬取酷狗Top500歌曲
嘿!有什么能帮到您的吗?
返回顶部

显示

忘记密码?

显示

显示

获取验证码

Close