[Python爬虫]使用Python爬取动态网页-豆瓣电影(JSON)
作者:宅必备
一个会写Python的Oracle DBA
个人公众号:宅必备
前文传送门:
好久没更新Python相关的内容了,这个专题主要说的是Python在爬虫方面的应用,包括爬取和处理部分
第二节我们介绍如何爬取动态网页
动态网页指的是网页的内容通过js动态加载出来的
我们可以直接使用一些开发者工具查看
这里我采用谷歌浏览器的开发者工具
开发环境
操作系统:windows 10
Python版本 :3.6
爬取网页模块:requests
分析网页模块:json
模块安装
pip3 install requests
网页分析
我们使用豆瓣电影的页面来开始分析
https://movie.douban.com/explore#!type=movie&tag=%E7%83%AD%E9%97%A8&sort=recommend&page_limit=20&page_start=0
由于是动态加载的我们这里无法直接通过get方法获取网页内容
当我们点击加载更多时可以通过开发者工具 Network选项中的XHR 来获取动态加载的js
打开获取到的连接
https://movie.douban.com/j/search_subjects?type=movie&tag=%E7%83%AD%E9%97%A8&sort=recommend&page_limit=20&page_start=20
我们可以发现连接的规律,即page_limit和page_start
可以看到打开的内容为json格式
这里我们构造一个连接,让它从第一个电影开始,并显示100个
https://movie.douban.com/j/search_subjects?type=movie&tag=%E7%83%AD%E9%97%A8&sort=recommend&page_limit=100&page_start=0
对于JSON的解析我们可以先用一个在线的网站来查看
https://jsonformatter.curiousconcept.com/
这里可以看到包含了如下信息
评分
电影名称
电影的豆瓣链接
封面地址
代码介绍
这里逐行介绍代码
1. import相关的模块
import requests
import json
2. 使用request模块打开并获取网页内容
r = requests.get(url,verify=False)
content=r.content
3. 使用json.load将json格式转换为python的字典格式
这时就可以使用字典的相关方法来处理网页了
result=json.loads(content)
tvs=result['subjects']
4. 获取相关信息并存入字典中
执行结果
我们可以选择将获取到的数据放入数据库中
源码位置
源码请访问我的github主页:
https://github.com/bsbforever/spider/blob/master/dynamic_json.py
Python爱好者社区历史文章大合集:
Python爱好者社区历史文章列表(每周append更新一次)
关注后在公众号内回复“课程”即可获取:
小编的Python入门视频课程!!!
崔老师爬虫实战案例免费学习视频。
丘老师数据科学入门指导免费学习视频。
陈老师数据分析报告制作免费学习视频。
玩转大数据分析!Spark2.X+Python 精华实战课程免费学习视频。
丘老师Python网络爬虫实战免费学习视频。