爬虫学习笔记(三)——利用JSON爬取豆瓣热映的使用
系列文章目录
爬虫学习笔记(一):requests基础用法之爬取各类主流网站1
爬虫学习笔记(二):requests基础用法之爬取各类主流网站2
文章目录
- 系列文章目录
- 前言
- 一、JSON是什么?
- 二、使用步骤
- 1.引入库
- 2.查找数据
前言
经过上2篇的内容,我们已经对lxml加xpath的爬取思路已经比较熟悉了。今天我们尝试对json内的内容进行一个爬取。很多时候网站的内容并不是保存在html中的,通过json进行加密,增加了爬取内容的难度。
提示:以下是本篇文章正文内容,下面案例可供参考
一、JSON是什么?
示例: json的全称为:JavaScript Object Notation,是一种轻量级的数据交互格式。而在Python中处理JSON格式的模块有json和pickle两个。
json模块和pickle都提供了四个方法:dumps, dump, loads, load
序列化:将python的数据转换为json格式的字符串(dumps, dum)
反序列化:将json格式的字符串转换成python的数据类型( loads, load)
二、使用步骤
1.引入库
库引入的代码如下(示例):
import json
import requests
2.查找数据
其实这一步对于新手是最难的。我看过不少关于爬取豆瓣的文章,但是由于时效性,或者豆瓣刻意改变了页面布局,你很难利用原来的文章找到对应的数据,一会儿,我会都把坑点出来给大家看。
2.1利用谷歌CHROME浏览器打开豆瓣手机版页面。
!注意:一定要确保是手机版本,手机版本更好爬取。网址如下:https://m.douban.com/movie/
这里出现第一个坑
假设我们要爬取的是“豆瓣热映”,但是新手机版本的豆瓣电影里有“豆瓣热映”,“豆瓣榜单”,“豆瓣片单”等多个专栏,内容被整合了,因此你很难利用CHROME浏览器找到对应的JSON数据。
这里先提供一下“豆瓣热映”的真实URL地址:“https://m.douban.com/movie/nowintheater?loc_id=108288”
大家打开后是这样的:
用Chrome浏览器打开检查页面,我们在NETWORK下面的XHR标签下,找到一个包含文字“item”的JSON文件,从proview进行查看,找到内容和element内的完全一致。
剩下的就简单了,直接上代码:
# -*- coding: utf-8 -*-
import json
import requestsheaders={"Referer": "https://m.douban.com/movie/nowintheater?loc_id=108288","User-Agent":"Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Mobile Safari/537.36"}
url = "https://m.douban.com/rexxar/api/v2/subject_collection/movie_showing/items?os=android&for_mobile=1&start=0&count=18&loc_id=108288"# 需要爬数据的网址
response = requests.get(url,headers=headers)
# 先找到对应JSon的url
#html_str = parse_url(url)
# json.laods把json字符串转化为python
#print(json.loads(response.content.decode("utf-8")))print(type(response.json()))
ret1 = json.loads(response.text)
#print(ret1)
content_list = ret1["subject_collection_items"]
print(content_list)
for i in content_list:items = {"电影名称": i['title'],"上映时间": i['release_date'],"网址":i['uri']}content = json.dumps(items, ensure_ascii=False) + "\n,"with open("doubandianying.txt", "a", encoding="utf-8") as f:f.write(content)
注意这个代码里面的坑:HEADER里面的Referer": "https://m.douban.com/movie/nowintheater?loc_id=108288"是必须带上的,不然爬取不到内容。
总结
提示:这里对文章进行总结:
以上就是今天要讲的内容,本文仅仅简单介绍了JSON爬虫的使用,对于JSON内容的查找是很困难的,因为网站被爬多了会尽量隐藏信息,也会设置反扒机制。当我们碰见多页面整合时,只能找到真实的单个专栏的页面,更容易爬取。例如:大家可以尝试豆瓣电视剧的美剧或日剧专栏,地址如下:https://m.douban.com/tv/american
在这个网址里面,XHR的含"items"JSON文件很容易被查找到。
爬虫学习笔记(三)——利用JSON爬取豆瓣热映的使用相关推荐
- Python数据爬虫学习笔记(3)爬取豆瓣阅读的出版社名称数据
需求:写一个Python程序,实现获取豆瓣阅读网页上的所有出版社名称,并储存在指定路径的txt文件中,如下: 准备:观察该网页的源代码,注意到每个出版社名称都由固定格式的div所包裹,如下: 编写代码 ...
- 爬虫学习笔记-猫眼电影排行爬取
爬虫学习笔记-猫眼电影排行爬取 1 分析页面 https://maoyan.com/board/4 点击页码发现页面的URL变成: 初步推断出offset是一个偏移量的参数,当页面为第一页时offse ...
- Python爬取豆瓣热映电影
Python爬取豆瓣热映电影 # encoding: utf-8import requests from lxml import etree# 1. 将目标网站上的页面抓取下来 headers = { ...
- python爬取京东手机数据_Python数据爬虫学习笔记(21)爬取京东商品JSON信息并解析...
一.需求:有一个通过抓包得到的京东商品的JSON链接,解析该JSON内容,并提取出特定id的商品价格p,json内容如下: jQuery923933([{"op":"75 ...
- 爬虫学习笔记(用python爬取东方财富网实验)
参考文章以及视频:(11条消息) 爬虫实战 | 爬取东方财富网股票数据_简说Python的博客-CSDN博客.手把手教你从东方财富网上获取股票数据_哔哩哔哩_bilibili.[Python爬虫案例] ...
- 网络爬虫实战(三):爬取豆瓣、猫眼流浪地球数万条评论信息
春节如约而至,随着消费水平的提高,越来越多的人们走进电影院,观看春节档电影.去看啥电影,先看看网友们的评分评论也是非常有必要的,于是前几天遍想到用爬虫去爬取一些有用的信息. 爬取豆瓣电影评论 可以看得 ...
- python爬虫学习笔记(一)—— 爬取腾讯视频影评
前段时间我忽然想起来,以前本科的时候总有一些公众号,能够为我们提供成绩查询.课表查询等服务.我就一直好奇它是怎么做到的,经过一番学习,原来是运用了爬虫的原理,自动登陆教务系统爬取的成绩等内容.我觉得挺 ...
- 【Python3 爬虫学习笔记】用PySpider爬取虎嗅网并进行文章分析
–转自<1900-高级农民工>http://www.makcyun.top 安装并运行pyspider 安装pyspider pip3 install pyspider 运行pyspide ...
- Python数据爬虫学习笔记(11)爬取千图网图片数据
需求:在千图网http://www.58pic.com中的某一板块中,将一定页数的高清图片素材爬取到一个指定的文件夹中. 分析:以数码电器板块为例 1.查看该板块的每一页的URL: 注意到第一页是&q ...
最新文章
- SAP MM初阶之事务代码MIGO界面批次拆分最多输入15行?
- python爬取qq音乐周杰伦_Python爬取20万条评论,告诉你周杰伦为啥弄崩QQ音乐?
- WordPress /wp-admin/includes/post.php user_ID 参数操作权限提升漏洞
- 如何避免DevOps变革的六大“焦油坑”
- java 图片有损压缩_java - 用有损jpeg压缩多页tiff图像 - 堆栈内存溢出
- Delphi2010 RTTI + Attribute 简单实现ORM实例
- php 跨域 session,php session 跨域的解决办法
- 【大数据】大数据技术框架,有这一篇文章就够了
- 【转】我的算法学习之路
- JavaScript 基础(002_Event Bubbling)
- Linux利用脏牛漏洞提权
- python画正八边形的代码_Python 代码风格 和 PEP8【转】
- USB 中的DM,DP上拉电阻分析
- 访问学者如何申请美国J1签证?
- omnipeek查询设备发送beacon时同一信道两个beacon发送间隔
- RISC-V 常用汇编指令
- AMEYA360皇华:电子元器件四大分类
- POI 创建Excel 2003 (一)
- 安卓开发之画画板的实现
- PMP组织架构分类(强矩阵弱矩阵等)及项目经理权力与职能经理对比,一看必懂
热门文章
- eclipse下连接MYSQL教程
- 51单片机电机测速程序c语言,单片机电机测速程序
- 微信 群相册服务器,微信也有群相册!用这个小程序,轻松优雅收集聚会合影...
- Java之于Javascript就好比Car(汽车)之于Carpet(地毯)。
- calc.relimp学习笔记(R语言)
- 加州欧文计算机工程专业,加州大学欧文分校计算机工程排名第29(2020年TFE美国排名)...
- ROC阳性结果还是阴性结果?
- 靠谱分3个层次,你在哪一层?做到第3层才会有开挂的人生
- 一个月收入 3000 的人,指导一个月收入 30000 的人去投资,你可以无视了……
- Dynamic Movement Primitives与UR5机械臂仿真