(2021.11.25自编自测)想和python爬虫谈恋爱?打打基础的你适合看下这个利用爬虫爬取歌曲

(2021.11.25自编自测)想和python爬虫谈恋爱?打打基础的你适合看下这个利用爬虫爬取歌曲

python是一门比较容易入手的编程,小编已经用它的在领导面前得瑟了好多吧了,坚持和努力才是成功的基石
小编做这个的时候也是遇见了好多的麻烦事,比如小编第一次尝试requests进行请求来接的时候,页面就被拦截了,但是百变不离其中,小编也是一点一点慢慢的折磨了下来
这个比较适合python爬虫初学者看看,来增加一下学习爬虫的兴趣,相信我这是个不错的选择

一切只为学习交流,无意冒犯,如有冒犯,请及时联系小编进行删除清理操作

首先呢,小编也得承认,小编的技术也称不上大佬,对于python也不能说是很熟,但是平时好多的工作上常用的辅助工具,其中就包括爬虫以及一些常用的运维工具,小编还是有这个开发能力的,比如说公司的平台需要从数据库里面导出来一下数据进行演示汇报作用的啦,如果从数据库里面导出数据的话,我相信大家都经历过,好不容易拿到了进入数据库服务的“大门钥匙”,又被各种字段跟弄迷糊了,还有就是客户之相信平台上面的数据(实际经验告诉我,数据库中的数据与平台上面展示的数据总是要多的多),所以“嘻嘻”,那就爬虫来收集数据,数据本身就是平台上面的,最要逻辑上面不出现任何的问题,基本上,数据是可以对的上的,然后把数据write导execl里面,ok,完美交工
针对这个网站的抓取,一方面进行学习交流,另一方面还是希望通过分析判断来了解需要改进的地方。

总体思路

  • 第一步,确定需要爬取的内容
  • 第二步,确定每页展示多少内容,总共多少页
  • 第三步,确定切换页码的时候,url变化的规律
  • 第四步,确定每一首歌曲的播放url地址
  • 第五步,确定每一首歌的下载url,并进行下载

做爬虫的大家都知道,首先是有有一个比较实际的思路,当然了小编上边的思路也是所有爬取资源的总体思路,首先呢,为什么要确定爬取的内容,因为你需要确定你需要爬取什么内容,也就是说你最基本的需要知道自己要干什么吧,其次呢,是怎么干,我知道了自己要干什么之后,我就的想法通过各种渠道来拿到我需要的资源,那怎么干,怎么 拿到资源,这个就是我们需要解决的,这个也是爬虫中的最关键的逻辑或者是技术,最后呢,你需要将爬取到的数据来保存到本地,至于你要干什么,这个也就不是很重要是吧。

本篇文章主要用的模块

import requests
import re
###都是一些最基本的用法,重要的事懂这个爬虫的逻辑

确定需要爬取的内容

我这边使用热搜榜作为今天的爬取内容,相对其他的来说,这个热搜榜是难度较大的


ok,目标就选择他了,可是着手准备,通过界面我们可以得知,热搜榜总共500首歌曲,每页有20首歌曲,总共有25页。
敲黑板了哈,做笔记,必考点来了。

  • 通过上图我们可知
  • 热搜榜总共500首歌曲
  • 每页总共有20首
  • 总共有25页

注意:这是我们人眼看见的,但是python程序他是不知道的,所以接下来我们就的需要用python让他自己来知道这些信息

确定每页展示多少内容,总共多少页

那么怎么来确定热搜榜总共500首歌曲,每页有20首歌曲,总共有25页。其实有很多的方法的,一般来说的话都会在首页也就是第一页来告诉页面有多少页了,当然还有其他的方法,小编这里是在第一页查找的。

有坑勿踩:这个网站做的还是比较好的,这个也是一种反爬机制,就是无论你显示多少页码的内容,艾叶,我的url都是一个(看下两张图的对比),让你无处可爬,对,你没有看错就是这样,但是咱还有反反爬以及到处都是办法的人称没办法


首先我们需要确认下,无论你怎么变,那怕你是72边,我就是不动,我要明白我的目的,再怎么舞刀弄枪,哎呀,我就是不看,哎呀妈呀,你说急不急死个人哈。也就是我只要通过你这页面获取到 热搜榜总共500首歌曲,每页有20首歌曲,总共有25页,这就是我们的目的。

查看源代码

【火狐浏览器】----【所需内容的第一页】----【右键】-----【查看网页源代码】就可以看到网页的源代码了,咱们只希望通过源代码,获取到我们所需要的数据就行

这里同时也教大家一个小窍门。ctrl+f组合键可以搜索网页中的关键字,比如说咱这个要找总共500首歌曲,那就搜“500”
(2021.11.25自编自测)想和python爬虫谈恋爱?打打基础的你适合看下这个利用爬虫爬取歌曲_第1张图片
通过上图可知有这个500的关键字存在,那么是不是我们要找的这个歌曲总数呢,看变量名PageData.totalCount应该是的,还有就是全网页就这一个关键词,还有重大发现哟,就是下面的 "var pageSize = 20;(下图位置) ",哈哈,果然得来全不费功夫
(2021.11.25自编自测)想和python爬虫谈恋爱?打打基础的你适合看下这个利用爬虫爬取歌曲_第2张图片
开始敲代码,重点来了哈

#定义总页数的变量Page_Show
Page_Show=''
#定义每页多少数据size的变量Page_Size
Page_Size=''
#传递第一页内容的url来获取当前多少数据,多少页码,每页数据szie
Page_Url = 'http://www.htqyy.com/top/hot'


##requests.get来获取一下当前url的网页源代码
Page_res = requests.get(Page_Url)

##利用re模块来对当前url进行内容识别
    ##创建re.compile规则
Page_All_Find = re.compile(r'PageData.totalCount = (?P.*?);.*?var pageSize = (?P.*?);',re.S)
    ##通过re.fiditer来指定来源数据
Page = Page_All_Find.finditer(Page_res.text)
    ##利用for循环来进行规则匹配结果的输出,并相应的进行赋值
for it in Page:
    Page_Size = int(it.group('pageSize'))
    Page_Show = int(int(it.group("PageData_totalCount"))/int(it.group('pageSize')))
##打印出总页数:测试用
print(Page_Show)
##打印出每页szie:测试用
print(Page_Size)

输出展示:
(2021.11.25自编自测)想和python爬虫谈恋爱?打打基础的你适合看下这个利用爬虫爬取歌曲_第3张图片
重点来了,里面的re.compile规则是怎么来的,是这样来的呦,请看下面


    
                    
                    

你可能感兴趣的:(笔记,日常操作,python之实用小工具,运维,python,爬虫,爬取歌曲,运维开发)