目录

  • 准备工作
  • 安装方法
  • 步骤
    • 新建py文件
    • 复制网页链接
    • 获取源代码
    • 获取数据
  • 源代码

这里用QQ音乐作为一个例子。不同的链接,按照此方法都可做到。
本次程序编写原则上按照模块化进行划分,一个步骤一个函数。
分别:main()、open_url(url)、find_attribute()。

准备工作

准备如下几个工具。BeautifulSoup包、IDLE
对前端的知识有一定的理解

安装方法

1.IDLE下载链接
2.BeautifulSoup包在拥有IDLE的前提下输入win+r
3.输入cmd 进入命令提示符
4.输入命令 pip install BeautifulSoup4

步骤

  • 新建py文件
  • 复制网页链接
  • 获取网页源代码
  • 获取数据
  • 自定义保存

新建py文件

建立函数结构
import urllib.request
from bs4 import BeautifulSoup
def open_url(url):pass
def find_attribute(url):pass
def main():pass

复制网页链接

复制网页链接将链接用列表进行保存下来。如果想要同一时间获取多个网页里面的数据,自行书写for循环遍历列表即可。以下只以一个网页进行讲解。

def main():# 用列表进行存储网页链接url = "https://y.qq.com/n/yqq/playlist/7174020835.html#stat=y_new.index.playlist.name"# 将url传到该函数进行获取数据该功能find_attribute(url)

获取源代码

def open_url(url):req = urllib.request.Request(url)# 模拟电脑访问# 按F12按照图片所示操作即可获取添加req.add_header("User-Agent","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36")# 给网页发送请求。网页就会返回一个响应给我们response = urllib.request.urlopen(req)# 获取源代码html = response.read()# 将源码以utf-8 的形式进行解码return html.decode("utf-8")

获取数据


使用select定位的方法。有可能存在以下问题:
1.定位不准确,会导出网页其他的内容
2.找不到内容,原因:定位深度有限。解决方案:父子关系多写几层用>符号进行建立父子关系
3.对于类选择题,ID选择器有不同的方法进行搜索。
自行上网进行查阅。关键字:beautifulsoup.select方法的使用
每一次书写select定位的方法可以使用print进行打印。
获取的数据是用列表进行存储的。


def find_attribute(url):# 此处返回的html就是网页的源代码# 可以用print(html) 打印观看一下效果html = open_url(url)# 利用BeautifulSoup将源代码进行解析soup = BeautifulSoup(html,"lxml")# 通过标签进行选择数据即可# 定位的方法具体如图片所示# <div class="songlist__number">30</div># 排名ranks = soup.select("div.songlist__number")# 歌曲musics = soup.select("span.songlist__songname_txt > a")# 歌手singers = soup.select("div.songlist__artist > a")# 专辑albums = soup.select("div.songlist__album > a")# 时长times = soup.select("div.songlist__time")list1 = []# 连接列表。用循环打印# 再存放到字典当中for rank,music,singer,album,time in zip(ranks,musics,singers,albums,times):data = {# 获取文本用 get_text()# 获取属性值用['属性']"排名":rank.get_text(),"歌曲":music["title"],"歌手":singer["title"],"专辑":album["title"],"时长":time.get_text()}# 追加到列表当中list1.append(data)print(list1)

源代码


import urllib.request
from bs4 import BeautifulSoupdef open_url(url):req = urllib.request.Request(url)# 模拟电脑访问req.add_header("User-Agent","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36")response = urllib.request.urlopen(req)html = response.read()# 将源码以utf-8 的形式进行解码return html.decode("utf-8")def find_attribute(url):html = open_url(url)soup = BeautifulSoup(html,"lxml")# 通过标签进行选择数据即可# <div class="songlist__number">30</div># 排名ranks = soup.select("div.songlist__number")# 歌曲musics = soup.select("span.songlist__songname_txt > a")# 歌手singers = soup.select("div.songlist__artist > a")# 专辑albums = soup.select("div.songlist__album > a")# 时长times = soup.select("div.songlist__time")list1 = []for rank,music,singer,album,time in zip(ranks,musics,singers,albums,times):data = {"排名":rank.get_text(),"歌曲":music["title"],"歌手":singer["title"],"专辑":album["title"],"时长":time.get_text()}list1.append(data)print(list1)def main():# 第一步:将url传过去利用一定手段返回网页的源码# 第二步:源码获取了之后# 第三步:通过标签的父子关系进行定位# 第四步:将获取的数据,进行一个保存# 如果有多个url添加for循环修改地址即可# 这里只演示单个网页url = "https://y.qq.com/n/yqq/playlist/7174020835.html#stat=y_new.index.playlist.name"# 为了更加好看。设计模块化罢了find_attribute(url)if __name__ == "__main__":main()

Python爬虫实战之爬取QQ音乐数据相关推荐

  1. Python爬虫实战之爬取QQ音乐数据!QQ音乐限制太多了!

    这里用QQ音乐作为一个例子.不同的链接,按照此方法都可做到. 本次程序编写原则上按照模块化进行划分,一个步骤一个函数. 分别:main().open_url(url).find_attribute() ...

  2. Python爬虫实战之爬取QQ音乐之下载有版权的音乐(五)-1

    我这里使用的方法 比较简单 用神奇fiddler即可. 这些分两篇 第一篇定位音乐然后手动操作保存  第二篇自动下载 首先本篇下载的最近很火的一首歌叫 < 你的酒馆对我打了烊 > 这个音乐 ...

  3. Python爬虫实战之爬取百度音乐歌曲

    Python爬虫爬取百度音乐歌曲 整体思路如下: 1.搜索:通过搜索界面输入歌手名字找到歌手的歌曲信息.千千音乐:网址 2.找到歌曲信息:通过遍历歌曲列表信息界面获取每个歌曲的ID,以及歌曲的总数 3 ...

  4. python爬取豆瓣影评_【python爬虫实战】爬取豆瓣影评数据

    概述: 爬取豆瓣影评数据步骤: 1.获取网页请求 2.解析获取的网页 3.提速数据 4.保存文件 源代码: # 1.导入需要的库 import urllib.request from bs4 impo ...

  5. 携程ajax,Python爬虫实战之爬取携程评论

    一.分析数据源 这里的数据源是指html网页?还是Aajx异步.对于爬虫初学者来说,可能不知道怎么判断,这里辰哥也手把手过一遍. 提示:以下操作均不需要登录(当然登录也可以) 咱们先在浏览器里面搜索携 ...

  6. Python爬虫实战之爬取糗事百科段子

    Python爬虫实战之爬取糗事百科段子 完整代码地址:Python爬虫实战之爬取糗事百科段子 程序代码详解: Spider1-qiushibaike.py:爬取糗事百科的8小时最新页的段子.包含的信息 ...

  7. Python爬虫实战之爬取百度贴吧帖子

    Python爬虫实战之爬取百度贴吧帖子 大家好,上次我们实验了爬取了糗事百科的段子,那么这次我们来尝试一下爬取百度贴吧的帖子.与上一篇不同的是,这次我们需要用到文件的相关操作. 本篇目标 对百度贴吧的 ...

  8. Python爬虫实战(1) | 爬取豆瓣网排名前250的电影(下)

    在Python爬虫实战(1) | 爬取豆瓣网排名前250的电影(上)中,我们最后爬出来的结果不是很完美,这对于"精益求精.追求完美的"程序猿来说怎么能够甘心 所以,今天,用pyth ...

  9. Python爬虫实战之爬取网站全部图片(一)

    Python爬虫实战之爬取网站全部图片(二) Python爬虫实战之通过ajax获得图片地址实现全站图片下载(三) 一.获得图片地址 和 图片名称 1.进入网址之后 按F12  打开开发人员工具点击e ...

最新文章

  1. 论文: Data-Driven Evolutionary Optimization : An Overview and Case Studies(3) 总结部分以及自己的想法
  2. ios 位置服务器,iOS 14 隐私保护:管理和控制共享的位置信息
  3. SwiftStack迎来v5.0,向混合IT规则张开怀抱
  4. Entity Framework 学习初级篇7--基本操作:增加、更新、删除、事务
  5. 零基础带你一步步搭建Nacos高可用集群(史上最详细,赛过教科书!)为此我准备了三台云服务器+云数据库
  6. mysql4.1加密_Java版Mysql4.1之前的old_password加密算法
  7. ABP文档 - Mvc 视图
  8. allergro音乐术语什么意思_这些关于刀具钢材的专业术语,你都知道是什么意思吗?...
  9. 俺也用一下mandriva,恩,KDE的效果的确不错
  10. 网页常用分享代码大全——整理摘抄至他人嘿嘿
  11. html代码放进json数据,用json数据填充html表
  12. [BZOJ3124]直径
  13. 深入理解【缺页中断】及FIFO、LRU、OPT这三种置换算法
  14. 死于决斗的数学天才伽罗瓦-人生的有限域
  15. mysql odbc 驱动程序不支持所需的属性_ODBC 驱动程序不支持所需的属性。
  16. 使用python的netCDF4库读取.nc文件 和 创建.nc文件
  17. 解决局域网共享无法访问
  18. x=rn(n)傅里叶变换matlab,第三章 离散傅立叶变换
  19. 软件测试系列——冒烟测试(Smoke Test,ST)
  20. 如何将PlayStation 4恢复出厂设置

热门文章

  1. JavaScript基础知识快速预览
  2. Java高频重点面试题,看这一篇就够了。
  3. SGI STL的rb_tree浅析
  4. 百度网盘在线不限速下载网站源码
  5. 手机抓取蓝牙日志btsnoop的方法汇总(Android一直补充中)
  6. UVA11134_Fabled Rooks
  7. TeamView 商用检测破解
  8. 【数据库实验】实验二 学习SQL 语句的数据操纵与视图
  9. 空间管理员(一)AFS文件目录系统索引节点vfs_inode结构
  10. python abs(3+4j)_表达式 abs(3+4j) 的值为 ____________ 。_学小易找答案