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()

Python实战之提取豆瓣华语新碟榜数据相关推荐

  1. python爬虫 — 爬取豆瓣最受关注图书榜

    一个简单的爬取豆瓣最受关注图书榜的小爬虫,在爬取相关信息后,将结果保存在 mongo 中 整个流程分为以下几步: (1)构造url (2)分析网页 (3)编写程序,提取信息 解析,将分别介绍以上几步 ...

  2. 【Python实战】高校数据采集,爬虫训练场项目数据储备

    在制作 爬虫训练场 项目时,需要准备大量的数据,供大家学习使用,本系列博客用于数据储备. 文章目录 示例代码如下所示 数据入库 本次要采集的是高考大数据,即 2022 年学校排名,数据来源为百度,地址 ...

  3. wps两列数据分别作为xy轴_【python实战】用KNN算法实现数据分类和数据预测

    导语:数据挖掘,又译为数据采矿,是指从大量的数据中通过算法搜索隐藏于其中信息的过程.本篇内容主要向大家讲述如何使用KNN算法进行数据分类和数据预测. 1.数据分类基础概念 数据分类就是相同内容.相同性 ...

  4. Python 超简单爬取微博热搜榜数据

    微博的热搜榜对于研究大众的流量有非常大的价值.今天的教程就来说说如何爬取微博的热搜榜. 热搜榜的链接是: https://s.weibo.com/top/summary/ 用浏览器浏览,发现在不登录的 ...

  5. python实现爬虫探探_全栈 - 9 实战 爬取豆瓣电影数据

    这是全栈数据工程师养成攻略系列教程的第九期:9 实战 爬取豆瓣电影数据. 掌握了爬虫的基本原理和代码实现,现在让我们通过实战项目巩固一下. 确定目标 在写爬虫之前应当想清楚:我需要哪方面的数据?需要包 ...

  6. Python 爬虫实战:分析豆瓣中最新电影的影评

    Python 爬虫实战:分析豆瓣中最新电影的影评 接触python时间不久,做些小项目来练练手.前几天看了<战狼2>,发现它在最新上映的电影里面是排行第一的,如下图所示.准备把豆瓣上对它的 ...

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

    爬虫第一个项目是爬取豆瓣华语电影,后面将对这部分数据进行分析. 本文也是发表于『运筹OR帷幄』微信公众号的<用数据带你了解电影行业-华语篇>的爬虫介绍篇. 1. 爬取思路 在观察了豆瓣每个 ...

  8. Python爬虫实战,requests+re模块,Python实现爬取豆瓣电影《魔女2》影评

    前言 闭关几个月,今天为大家带来利用Python爬虫抓取豆瓣电影<魔女2>影评,废话不多说. 爬取了6月7月25的影片数据,Let's start happily 开发工具 Python版 ...

  9. 数据分析(一)豆瓣华语电影分析

    在之前,我们已经用通过爬虫获取了豆瓣华语电影共33133部电影的数据,具体爬虫介绍请见之前的博文,爬虫实战(一)利用scrapy爬取豆瓣华语电影.本文对爬虫过程进行简要概述后,对这部分数据进行分析. ...

最新文章

  1. 如何启动linux上的svn服务
  2. 前方高能:1024程序员节读书攻略来来来来啦!
  3. 笔记本高分屏字体模糊_笔记本win8系统设置1920*1080高分屏后字体模糊的解决方法...
  4. eShopOnContainers 看微服务 ②:配置 启动
  5. ASP.NET AJAX Timer Trouble? Location is key.
  6. 2万字详解,彻底讲透 全文搜索引擎 Elasticsearch
  7. 使用python对url编码解码
  8. hua图软件 mac_细数Mac上那些好用且免费的软件(四)
  9. java cms文章管理_孔浩java cms完整视频教程_爱分享666
  10. java 使用POI导入复杂excel表格
  11. ​【火星传媒报道】李笑来归来:不做韭菜的生意
  12. python 给文件加密
  13. C语言——PAT 乙级(1002.读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字。)
  14. 小白畅聊区块链的容量问题
  15. ModelSim SE 10.0a建立并调用Xilinx ISE 13.1仿真库详解
  16. 我眼中的光明·第三周
  17. Stay Hungry Stay Foolish的真正含义
  18. vue结合饿了么_饿了么基于Vue2.0的通用组件开发之路(分享会记录)
  19. Solidworks2008 API 开发的问题。
  20. 单刹车信号不合理故障_驾照考试不合理

热门文章

  1. 工欲善其事必先利其器-C语言拓展–嵌入式C语言(一)
  2. 华为笔记本没有网线口_matebook 14有网线接口吗
  3. Qt利用avilib实现录屏功能,生成avi文件
  4. 马士兵 java 学习笔记_马士兵java教程笔记1
  5. 个性化海报在爱奇艺视频推荐场景中的实践
  6. UVA 1471 Defense Lines (LIS变形)
  7. ERP 数据流脚本框架 Samsara v2.0 脚本规范 (修订稿)
  8. Home Assistant 搭建日志(七)——安装NodeRed
  9. linux测网速几种方式
  10. U8,U16,U32,U64等是什么类型?