系列文章目录

爬虫学习笔记(一):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爬取豆瓣热映的使用相关推荐

  1. Python数据爬虫学习笔记(3)爬取豆瓣阅读的出版社名称数据

    需求:写一个Python程序,实现获取豆瓣阅读网页上的所有出版社名称,并储存在指定路径的txt文件中,如下: 准备:观察该网页的源代码,注意到每个出版社名称都由固定格式的div所包裹,如下: 编写代码 ...

  2. 爬虫学习笔记-猫眼电影排行爬取

    爬虫学习笔记-猫眼电影排行爬取 1 分析页面 https://maoyan.com/board/4 点击页码发现页面的URL变成: 初步推断出offset是一个偏移量的参数,当页面为第一页时offse ...

  3. Python爬取豆瓣热映电影

    Python爬取豆瓣热映电影 # encoding: utf-8import requests from lxml import etree# 1. 将目标网站上的页面抓取下来 headers = { ...

  4. python爬取京东手机数据_Python数据爬虫学习笔记(21)爬取京东商品JSON信息并解析...

    一.需求:有一个通过抓包得到的京东商品的JSON链接,解析该JSON内容,并提取出特定id的商品价格p,json内容如下: jQuery923933([{"op":"75 ...

  5. 爬虫学习笔记(用python爬取东方财富网实验)

    参考文章以及视频:(11条消息) 爬虫实战 | 爬取东方财富网股票数据_简说Python的博客-CSDN博客.手把手教你从东方财富网上获取股票数据_哔哩哔哩_bilibili.[Python爬虫案例] ...

  6. 网络爬虫实战(三):爬取豆瓣、猫眼流浪地球数万条评论信息

    春节如约而至,随着消费水平的提高,越来越多的人们走进电影院,观看春节档电影.去看啥电影,先看看网友们的评分评论也是非常有必要的,于是前几天遍想到用爬虫去爬取一些有用的信息. 爬取豆瓣电影评论 可以看得 ...

  7. python爬虫学习笔记(一)—— 爬取腾讯视频影评

    前段时间我忽然想起来,以前本科的时候总有一些公众号,能够为我们提供成绩查询.课表查询等服务.我就一直好奇它是怎么做到的,经过一番学习,原来是运用了爬虫的原理,自动登陆教务系统爬取的成绩等内容.我觉得挺 ...

  8. 【Python3 爬虫学习笔记】用PySpider爬取虎嗅网并进行文章分析

    –转自<1900-高级农民工>http://www.makcyun.top 安装并运行pyspider 安装pyspider pip3 install pyspider 运行pyspide ...

  9. Python数据爬虫学习笔记(11)爬取千图网图片数据

    需求:在千图网http://www.58pic.com中的某一板块中,将一定页数的高清图片素材爬取到一个指定的文件夹中. 分析:以数码电器板块为例 1.查看该板块的每一页的URL: 注意到第一页是&q ...

最新文章

  1. SAP MM初阶之事务代码MIGO界面批次拆分最多输入15行?
  2. python爬取qq音乐周杰伦_Python爬取20万条评论,告诉你周杰伦为啥弄崩QQ音乐?
  3. WordPress /wp-admin/includes/post.php user_ID 参数操作权限提升漏洞
  4. 如何避免DevOps变革的六大“焦油坑”
  5. java 图片有损压缩_java - 用有损jpeg压缩多页tiff图像 - 堆栈内存溢出
  6. Delphi2010 RTTI + Attribute 简单实现ORM实例
  7. php 跨域 session,php session 跨域的解决办法
  8. 【大数据】大数据技术框架,有这一篇文章就够了
  9. 【转】我的算法学习之路
  10. JavaScript 基础(002_Event Bubbling)
  11. Linux利用脏牛漏洞提权
  12. python画正八边形的代码_Python 代码风格 和 PEP8【转】
  13. USB 中的DM,DP上拉电阻分析
  14. 访问学者如何申请美国J1签证?
  15. omnipeek查询设备发送beacon时同一信道两个beacon发送间隔
  16. RISC-V 常用汇编指令
  17. AMEYA360皇华:电子元器件四大分类
  18. POI 创建Excel 2003 (一)
  19. 安卓开发之画画板的实现
  20. PMP组织架构分类(强矩阵弱矩阵等)及项目经理权力与职能经理对比,一看必懂

热门文章

  1. eclipse下连接MYSQL教程
  2. 51单片机电机测速程序c语言,单片机电机测速程序
  3. 微信 群相册服务器,微信也有群相册!用这个小程序,轻松优雅收集聚会合影...
  4. Java之于Javascript就好比Car(汽车)之于Carpet(地毯)。
  5. calc.relimp学习笔记(R语言)
  6. 加州欧文计算机工程专业,加州大学欧文分校计算机工程排名第29(2020年TFE美国排名)...
  7. ROC阳性结果还是阴性结果?
  8. 靠谱分3个层次,你在哪一层?做到第3层才会有开挂的人生
  9. 一个月收入 3000 的人,指导一个月收入 30000 的人去投资,你可以无视了……
  10. Dynamic Movement Primitives与UR5机械臂仿真