豆瓣电影信息爬取(json)
豆瓣电影信息爬取(json)
# a = "hello world" # 字符串数据类型
# b = {"name":"python"} # 字典
# c = '{"name":"python"}' # json数据类型字符串
方法:
分析网页subject 应该是下面类型
a = {'name':[{'id':1,'name':'python'},{'id':2,'name':'python1'},{}......]}
b = json.loads(a)
for i in b['name']:
print(i['name'])
网页分析
Network:
XHR:(XML Http Request)XHR对象提供了对 HTTP 协议的完全的访问,包括做出 POST 和 HEAD 请求以及普通的 GET 请求的能力。
Js:动态脚本语言,广泛应用于web应用的功能开发以及丰富页面体验,可以动态控制页面内容;如修改页面文字、图片、各种效果、功能等;
CSS:层叠样式表,通过设置对应的样式属性可以修改html文档内各元素的显示、位置等样式;如修改颜色、字体、字号、宽高、位置、背景等。
Headers:头信息
URL: https://movie.douban.com/j/search_subjects?type=movie&tag=%E7%83%AD%E9%97%A8&sort=recommend&page_limit=20&page_start=0
Request Method: GET 请求方法,除GET外还有 HEAD、POST、PUT等。
Status Code: 200 OK HTTP状态码,
例如:
HTTP: Status 200 – 服务器成功返回网页
HTTP: Status 404 – 请求的网页不存在
HTTP: Status 503 – 服务不可用
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3510.2 Safari/537.36
Preview: 预览
Respouse:响应
找到左侧包含subject的name, 分析subject 正是我们想要的信息。
爬取方法:
1.找到URL
2.解析url,得到我们的网页源代码
3.提取数据
4.保存数据
代码
import json
import requests
def douban():
# 1.找到URL
start_url = 'https://movie.douban.com/j/search_subjects?type=movie&tag=%E7%83%AD%E9%97%A8&sort=recommend&page_limit=20&page_start=0'
# 2.解析URL,得到我们的网页源代码
# 模拟浏览器,让服务器不会认为我们是电脑来提取的。
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3510.2 Safari/537.36}'}
for i in range(10):
url = start_url.format(i*20)
r = requests.get(url,headers = headers) # 用reques这个模块,来获取URL的信息
# print(r) # 输出 <Respouse [200]>
ret = r.content.decode() # 当前网页的源代码,json数据类型字符串
# print(ret)
# 3.提取数据
result = json.loads(ret) # 能够版json数据字符串变成字典,result就是真正的字典
# print(result)
# print(type(result))
for i in result['subjects']:
# print(i['title'])
# print(i['rate'])
# print(i['url'])
name = i['title']
rate = i['rate']
url = i['url']
# 保存数据
with open('./douban.csv', 'a') as f:
f.write('{},{},{}\n'.format(name,rate,url))
douban()
豆瓣电影信息爬取(json)的更多相关文章
- Scrapy项目 - 实现豆瓣 Top250 电影信息爬取的爬虫设计
通过使Scrapy框架,掌握如何使用Twisted异步网络框架来处理网络通讯的问题,进行数据挖掘和对web站点页面提取结构化数据,可以加快我们的下载速度,也可深入接触各种中间件接口,灵活的完成各种需求 ...
- Scrapy项目 - 数据简析 - 实现豆瓣 Top250 电影信息爬取的爬虫设计
一.数据分析截图(weka数据分析截图 ) 本例实验,使用Weka 3.7对豆瓣电影网页上所罗列的上映电影信息,如:标题.主要信息(年份.国家.类型)和评分等的信息进行数据分析,Weka 3.7数据分 ...
- 豆瓣电影top250爬取并保存在MongoDB里
首先回顾一下MongoDB的基本操作: 数据库,集合,文档 db,show dbs,use 数据库名,drop 数据库 db.集合名.insert({}) db.集合名.update({条件},{$s ...
- Scrapy项目 - 源码工程 - 实现豆瓣 Top250 电影信息爬取的爬虫设计
一.项目目录结构 spiders文件夹内包含doubanSpider.py文件,对于项目的构建以及结构逻辑,详见环境搭建篇. 二.项目源码 1.doubanSpider.py # -*- coding ...
- Scrapy教程--豆瓣电影图片爬取
一.先上效果 二.安装Scrapy和使用 官方网址:https://scrapy.org/. 安装命令:pip install Scrapy 安装完成,使用默认模板新建一个项目,命令:scrapy s ...
- 安居客scrapy房产信息爬取到数据可视化(下)-可视化代码
接上篇:安居客scrapy房产信息爬取到数据可视化(下)-可视化代码,可视化的实现~ 先看看保存的数据吧~ 本人之前都是习惯把爬到的数据保存到本地json文件, 这次保存到数据库后发现使用mongod ...
- java 语言实现豆瓣电影信息查询
豆瓣上面有很多电影,有时候要查看个电影信息,去豆瓣搜下还是很方便的,但是如何通过接口的形式来查看豆瓣电影,这对于很多网站.app其实是非常实用的功能,这里笔者附上一个java实现的豆瓣电影信息获取的代 ...
- python爬取豆瓣电影信息数据
题外话+ 大家好啊,最近自己在做一个属于自己的博客网站(准备辞职回家养老了,明年再战)在家里 琐事也很多, 加上自己 一回到家就懒了(主要是家里冷啊! 广东十几度,老家几度,躲在被窝瑟瑟发抖,) 由于 ...
- scrapy爬取豆瓣电影信息
最近在学python,对python爬虫框架十分着迷,因此在网上看了许多大佬们的代码,经过反复测试修改,终于大功告成! 原文地址是:https://blog.csdn.net/ljm_9615/art ...
随机推荐
- 静态方法调静态属性用self,$this不可以
- ubuntu库文件路径pkgconfig
settings--->compiler and bug settings -->link settings 在左边添加libpthread.a ,右边添加 -lpthread即可. u ...
- Java JarFile 解析
Java JarFile 解析 package com.github.binarylei; import java.io.*; import java.net.URL; import java.net ...
- 最意想不到的5个APP UI 设计范例
现如今,智能手机已成为人们生活中不可或缺的一个物件,琳琅满目的手机APP充斥着各大应用市场.对于普通人来说,他们的衣食住行因此而变得简单方便:对设计师们来说,他们则面临更多的机遇和挑战.每位设计师都梦 ...
- HBase 强制删除表
业务系统中有一张表drop不掉了. 可以disable,就是drop不掉. 解决办法: 1.将HDFS上的数据删除或移动 hadoop fs -mv /hbase/<table_name> ...
- [原创]Cef3 2623.1397 开启ppapi flash插件
最近发现WKE播放Flash或者游戏时会有很多BUG,例如视频无法播放或者是Stage3D无法使用等问题. 经过研究应该是精简版本导致的,所以决定尝试使用CEF3移植入SOUI,但是DEMO中版本有点 ...
- golang C相互调用带参数
test.h #ifndef __TEST_H__ #define __TEST_H__ void SetFunc(char* str); extern void InternalFunc(char* ...
- Linux守护进程编写方法及原理
什么守护进程? 守护进程是运行在后台的一种用来提供服务的进程,他脱离控制台独立运行,守护进程是一种很有用的进 程. Linux的大多数服务器就是用守护进程实现的.比如,Internet服务器inetd ...
- linux每天一小步---mv命令详解
1 命令功能 mv命令用来移动文件及目录或者重命名文件及目录,它是move的缩写,cp命令与mv命令在很多功能上都非常相似,但是又具有很大的区别,其中组大的区别在于cp命令的使用会保留源文件和目录,而 ...
- (巴什博弈 sg函数入门1) Brave Game -- hdu -- 1846
链接: http://acm.hdu.edu.cn/showproblem.php?pid=1846 首先来玩个游戏,引用杭电课件上的: (1) 玩家:2人:(2) 道具:23张扑克牌:(3) 规则: ...