Python爬虫练习(一):酷狗飙升榜前200_排行(使用select,find(),find_all()方法)

分析并构造请求网址

爬取酷狗音乐TOP500 的‘音乐名’,‘歌手’,‘歌名’,‘播放时间’,‘网址’这几个数据网址如下:https://www.kugou.com/yy/rank/home/1-8888.html?from=rank,浏览器打开网址分析,第一页只显示了22首歌曲:
Python爬虫练习(一):酷狗飙升榜前200_排行(使用select,find(),find_all()方法)_第1张图片
我们可以看到,其中有一个 1-8888 这个参数,打开上述网址后我们只能看到前 22 首歌,想继续查看后面的歌曲就得翻页,就像“淘宝”那样查看下一页商品需要翻页,这里也是一样的道理,把 1-8888 改成 2-8888 ,就会看到下一页的 22 首歌,如下:
Python爬虫练习(一):酷狗飙升榜前200_排行(使用select,find(),find_all()方法)_第2张图片
翻到第 200首音乐那一页,可以看到页码如下有 10 页,那么可以如下构造URL地址:

"""将所有URL构造成一个列表集合"""
URLs=["https://www.kugou.com/yy/rank/home/{}-8888.html?from=rank".format(str(i)) for i in range(1,10)]

构造请求

    try:
        res=requests.get(url)
        res.encoding=res.apparent_encoding  # 转换编码,不然中文会显示乱码,也可以r.encoding = 'utf-8'
        if res.status_code== 200:
            html=res.text
            return html
    except:
        print("请求失败")

使用 requests库的 get方法,去访问网页,res其中里面有很多结果:状态响应码,网页源码,二进制等。调用请求结果 res中的 status_code查看请求状态码response.status_code == 200

返回响应结果的 html,代表返回网页 html源码

解析数据

soup=BeautifulSoup(html,"lxml")
  """
  html 表示被解析的html格式的内容
  lxml 表示解析用的解析器
  """

提取数据

分析网页源代码:
Python爬虫练习(一):酷狗飙升榜前200_排行(使用select,find(),find_all()方法)_第3张图片
可以看到需要的一些信息如‘音乐名’,‘歌手’,‘歌名’,‘播放时间’,‘网址’等分别在如图标注的地方,每个歌曲信息所在的标签结构如下:所有歌曲信息都在

标签下,每首歌曲都在各自的

你可能感兴趣的:(Python爬虫,定位,python,爬虫,深度学习)