Python实战之提取豆瓣华语新碟榜数据

Python爬虫提取数据无非下面四点

1. 要获得怎么样的数据

2. 找到数据来源

3. 模拟浏览器发送请求获得数据

4. 处理数据,保存数据

 

第一步:要获得怎么样的数据

首先明白要提取什么数据,这里我们提取数据的url地址为:https://m.douban.com/music/newchinese

我们要提取里面的标题,歌手,评分,类型,精彩评论

第二步:找出数据来源

在这里PC版和手机版信息已经对比过,手机版的信息更易提取

我们打开手机版的页面 

 

勾上箭头保证刷新页面后,不会刷新请求包 

从而发现信息在该请求中

 

 

故我们请求只需请求网址:https://m.douban.com/rexxar/api/v2/subject_collection/music_chinese/items?os=ios&for_mobile=1&callback=jsonp1&start=0&count=18&loc_id=0&_=0   即可

我们猜测请求中start属性表示从第几个数据开始,count表示请求几个数据

那么我们只需一直改边start={}的值即可。直到请求失败或者返回空数据到请求数据结束。

 

第三步:模拟浏览器发送请求获得数据

我们查看该请求为get请求。

故我们只需制备请求头Url即可发送get请求

 

数据是json类型。故可以用json模块解析数据

我们发现:Url的callback属性  callback=jsonp1 就会在请求后的数据后放在  ;jsonp1();  括号中  

故我们把callback属性删除之后还想也能请求相应的数据,且请求后的数据不含有任何其他的杂项(比如;jsonp1(); )

在此把url中的callback删除

我们制备请求头和Url如下

 

    def __init__(self):self.TempUrl="https://m.douban.com/rexxar/api/v2/subject_collection/music_chinese/items?&for_mobile=1&start={}&count=50&_=0"self.headers={"User-Agent":"Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1"
,"Referer": "https://m.douban.com/music/newchinese"}

 

 

最后一步: 处理数据,保存数据

'''
0.根据url不断请求json字符串的函数
1.根据json字符串提取出数据的函数
2.保存数据的函数
这里信息只有18条,故其实run函数的while循环只运行了一次
'''
#获取豆瓣  华语热搜榜 .其实数据就18条
import requests
import  json
from pprint import pprint
#title singer rating  info recommend_comment
class DoubanPC:def __init__(self):#构造函数self.TempUrl="https://m.douban.com/rexxar/api/v2/subject_collection/music_chinese/items?&for_mobile=1&start={}&count=50&_=0"self.headers={"User-Agent":"Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1"
,"Referer": "https://m.douban.com/music/newchinese"}def GetJsonDate(self,url):#根据urrl得到请求的数据print("url:",url)ret=requests.get(url,headers=self.headers)return ret.content.decode()def GetWantDate(self,JsonStr):#得到想要的数据WantKeyList=["title", "singer", "rating" ,"info", "recommend_comment"]#想要提取的信息的key值Res=[]JsonStr=json.loads(JsonStr)# pprint(JsonStr)for i in JsonStr['subject_collection_items']:TempDict={}for j in WantKeyList:TempDict[j]=i[j]Res.append(TempDict)return Resdef Save(self,Str):#保存一条信息with open("douban.json","a",encoding="utf-8") as fp:fp.write(Str)fp.write("\n")def run(self):#实现主要逻辑numbers=0while True:url=self.TempUrl.format(numbers*50)JsonStr=self.GetJsonDate(url)DateList=self.GetWantDate(JsonStr)print("List legth:",len(DateList))if len(DateList)==0:breakself.Save(json.dumps(DateList,ensure_ascii=False))numbers+=1
if __name__ == '__main__':Douban=DoubanPC()Douban.run()

 

转载于:https://www.cnblogs.com/dchnzlh/p/10427222.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/25636.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

爬虫实战(一)利用scrapy爬取豆瓣华语电影

爬虫第一个项目是爬取豆瓣华语电影,后面将对这部分数据进行分析。 本文也是发表于『运筹OR帷幄』微信公众号的《用数据带你了解电影行业—华语篇》的爬虫介绍篇。 1. 爬取思路 在观察了豆瓣每个影片的链接地址后,写下了主要思路: &#xf…

语音之家SOTA|TIOBE 场景测试:华语大学生辩论赛

SpeechIO TIOBE Benchmark 场景测试:华语大学生辩论赛 场景:华语大学生辩论赛 1、素材来源 YouTube 爬取,华语大学生辩论世界杯,现场视频,原始时长约2小时。 2、场景特点 环境 辩论赛现场,室内场馆会场&…

Python批量爬取华语天王巨星周杰伦的音乐

前言 本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理。 PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取 python免费学习资料以及群交流解答点击即可加入 小伙伴说想听周杰伦的音乐&#xff…

华语乐坛到底姓什么?------酷狗篇

爬取页面展示 热门榜单——酷狗top500: https://www.kugou.com/yy/rank/home/1-8888.html?fromrank 特色榜单——影视金曲榜: https://www.kugou.com/yy/rank/home/1-33163.html?fromrank 项目分析 对于酷狗top500: 打开network发现酷狗并没有将榜单封装在json里面&#x…

华语电影

转载于:https://www.cnblogs.com/yymn/p/4512893.html

华为eSpace7910话机通讯录配置

1.登录话机IP。默认账号 admin/admin123 2.在左侧导航栏选择高级——服务——通讯录服务器 3.点击通讯录服务器选择LADP 4.按照下图设置LADP选项 LDAP服务器:172.16.237.1 LDAP端口:389 根节点:oucontacts,ouGD,ouAH,dcXXXX,dccom 账号:域…

华为产品测评官-开发者之声 - 产品体验

目录 活动介绍产品体验过程以及感受实战经验(具体的操作步骤和结果) 活动介绍 本期活动有机会使用并评估华为多个产品,包括华为云CodeArts,华为云ModelArts,鲲鹏DevKit,昇腾CANN,昇思MindSpore。无论您是初…

华为语音合成服务,为用户提供实时、可替换、多音调的语音播放体验

在不能操作手机或总盯着手机看的情况下,如何及时获取资讯信息、方便阅读呢?用耳朵听不失为一种好方法。华为机器学习服务的语音合成服务,采用深度神经网络技术,提供高度拟人、流畅自然的语音合成服务。开发者可以在小说阅读、智能…

基于OpenHarmony开发的语音小助手

基于OpenHarmony开发的语音小助手 本教程将演示如何在BearPi-HM_Nano开发板上使用GPIO输入功能去读取语音模块信息,实现****开关灯自由****!! 一、实验前器材准备 语音识别模块 语音播放模块 SD卡 无源喇叭 BearPi-HM_Nano开发板 E53—SC1…

带语音通话功能的华为ME909s-821a使用方法

关键词:华为 HUAWEI ME909s 821a V2 语音 Codec 正文:不少用户反馈,希望华为ME909s-821a模块能带上语音通话功能,其实821a模块引出了PCM数字音频接口,我们只需要外挂一个PCM codec即可实现语音通话功能。但是考虑…

调用华为API实现中文语音识别

目录 1. 作者介绍2. 华为云中文语音识别2.1 录音文件识别与获取2.2 限制要求2.3 对象存储服务(OBS)简介 3. 实验过程以及结果3.1获得API3.2 代码实现3.3 运行结果 参考(可供参考的链接和引用文献) 1. 作者介绍 张楠,女…

chatgpt赋能python:Python处理Word文件的优秀方案

Python处理Word文件的优秀方案 如今,Word文档在生活中变得越来越普遍,不仅在学校或办公室中使用,而且也在日常生活中,像编辑简历、写作业、撰写文档和工作报告等方面也十分常见。因此,学习如何使用Python处理Word文件…

期待文心一言体验号

期待百度文心一言的体验号,用好chatGPT首先要问自己想要什么,该怎么问才能高效拿到想要的目标结果。遇弱则弱,遇强则强,遇到正能量就能传递正能量! 谁有文心一言体验地址麻烦提供一下,交流一下: 下方是回复…

ChatGPT时代:数据标注会成为一种人机交互“语言”么?

标注猿的第70篇原创 一个用数据视角看AI世界的标注猿 大家好,我是AI数据标注猿刘吉,一个用数据视角看AI世界的标注猿。 从去年的10月份到现在有半年的时间没有更新了,去年没有更新是疫情的原因,今年没有更新主要有两个原因一…

Plus 版 Chatgpt,和任何的 PDF 聊天! #Chatpdf

Chatgpt 的出现,颠覆了整个内容生产行业的同时,也极大地提高了很多文字工作者的效率。 于是一时之间,各大公司都在争先推出自己的聊天机器人,希望在这个新兴而庞大的市场分一杯羹。‍‍‍‍‍‍‍‍ 于是 Chatpdf 出现了&#xff…

大厂程序员手把手教你如何写简历(附简历模板)

代码随想录刷题网站上线咯:programmercarl.com,200道力扣题目刷题顺序,详细题解,支持C、Java、Python、Go、JS等多语言版本,一个你只要发现,就会收藏的硬核算法学习网站。 文章目录 简历基调谨慎使用精通两…

ChatGPT做的简历戳中HR心巴,小伙刚毕业就拿下梦想offer!

西风 发自 凹非寺量子位 | 公众号 QbitAI 鹅妹子嘤,最近一位毕业生用ChatGPT生成的求职信,分分钟躲过简历筛选算法。 然后,自己梦寐以求的工作就真的到手了! 这位用ChatGPT帮忙找工作的小伙表示: 三月份以来写所有东西…

软件测试个人求职简历该怎么写,模板在这里

目录 1、个人资料 2、专业技能 3、工作经验 4、项目经验 5、教育背景 1、个人资料 姓 名:xxx 性 别:x 手机号码:138888888xx 邮 箱: xxx 学 历:本科 专 业:电子商务 英 语:四级 当前工作…

程序员简历应该怎么写?

说到程序员简历,这两个月,我看过不下10,000份简历。。。 答主不是HR,也不是技术负责人,但是在网站的运营工作中,每天最开心的事情就是研究候选人的简历了~~ 这些人中,有BAT的资深大牛程序员,也有…

建议这样使用ChatGPT,让你成为更好的开发者

这样使用ChatGPT,让你成为更好的开发者 作为开发人员,您的责任之一是不断学习和提高您的技能。ChatGPT 是一个强大的工具,可以通过多种方式帮助您成为更好的开发人员。如果你不知道什么是 ChatGPT,它是 OpenAI 开发的一种大型语言…