小试牛刀--利用豆瓣API爬取豆瓣电影top250
最近得赶进度爬点东西,对于豆瓣,它为开发者提供了API,目前是v2版本,目前key不对个人开放,但是可以正常通过其提供的API获取数据。豆瓣V2版API权限分3类:公开、高级、商务,我们用开放基本数据接口,一般个人爱好者自建网站或应用都能满足的公开权限。
还有一点,豆瓣API返回值为json,所谓JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。这些特性使JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成。[转自网络]具体用法可以参考Python文档,这里看一下json与Python对应的数据类型:
Performs the following translations in decoding by default(转换为Python时):
| Json | Python |
|---|---|
| object | dict |
| array | list |
| string | unicode |
| number (int) | int, long |
| number (real) | float |
| true | True |
| false | False |
| null | None |
Supports the following objects and types by default(从Python转为JSON):
| Python | JSON |
|---|---|
| dict | object |
| list, tuple | array |
| str, unicode | string |
| int, long, float | number |
| True | true |
| False | false |
| None | null |
豆瓣API用法可以参考https://developers.douban.com/,有很多API,我们用电影的做个测试,上代码:
#---coding:utf-8---
import urllib2
import json
import string#后面处理页要用到 html = r'https://api.douban.com/v2/movie/top250?start={page}'
#html = urllib2.urlopen(r'https://api.douban.com/v2/movie/top250?start=') print 'begin...'
i = 1
p = 1
while p <=5:
#print '=====START PAGE:',(p-1)*20
#每次获取一页
try:
hjson = json.loads(urllib2.urlopen(html.format(page=(p-1)*20)).read())
except Exception as e:
print e
#处理json,具体返回样例参照豆瓣API即可,输出格式: 排行:电影中文名---英文名(年代)
for key in hjson['subjects']:
print i,':',key['title'],'--'\
,key['original_title'],'(',key['year'],')'
i+=1
p+=1 print 'over!'
用API多简单,这里说一下,每次获取一页只有20条,目前还没搞定怎么获取多点,只好用了个循环的笨法子,这里只爬了前100测试一下,还有就是发现好多库2.x可以用3.x不能用,于是就有装了个2.7,其实并不冲突(2.7.10往后有冲突,装不上,以前的版本没试,我的版本是2.7.6),只要在环境变量配置的时候把2.x放前面就会用2.x,用pycharm的时候还不会怎么选2.x和3.x,感觉和eclipse选Tom cat差不多,回来搞一搞。好了,我们运行看一下(在原生IDE就能看到结果,就不截图了,其实也可以写到一个.TXT里面):
>>>
begin...
1 : 肖申克的救赎 -- The Shawshank Redemption ( 1994 )
2 : 这个杀手不太冷 -- Léon ( 1994 )
3 : 阿甘正传 -- Forrest Gump ( 1994 )
4 : 霸王别姬 -- 霸王别姬 ( 1993 )
5 : 美丽人生 -- La vita è bella ( 1997 )
6 : 千与千寻 -- 千と千尋の神隠し ( 2001 )
7 : 辛德勒的名单 -- Schindler's List ( 1993 )
8 : 海上钢琴师 -- La leggenda del pianista sull'oceano ( 1998 )
9 : 机器人总动员 -- WALL·E ( 2008 )
10 : 盗梦空间 -- Inception ( 2010 )
11 : 泰坦尼克号 -- Titanic ( 1997 )
12 : 三傻大闹宝莱坞 -- 3 Idiots ( 2009 )
13 : 放牛班的春天 -- Les choristes ( 2004 )
14 : 忠犬八公的故事 -- Hachi: A Dog's Tale ( 2009 )
15 : 龙猫 -- となりのトトロ ( 1988 )
16 : 大话西游之大圣娶亲 -- 西遊記大結局之仙履奇緣 ( 1995 )
17 : 教父 -- The Godfather ( 1972 )
18 : 乱世佳人 -- Gone with the Wind ( 1939 )
19 : 天堂电影院 -- Nuovo Cinema Paradiso ( 1988 )
20 : 当幸福来敲门 -- The Pursuit of Happyness ( 2006 )
21 : 搏击俱乐部 -- Fight Club ( 1999 )
22 : 楚门的世界 -- The Truman Show ( 1998 )
23 : 触不可及 -- Intouchables ( 2011 )
24 : 指环王3:王者无敌 -- The Lord of the Rings: The Return of the King ( 2003 )
25 : 罗马假日 -- Roman Holiday ( 1953 )
26 : 十二怒汉 -- 12 Angry Men ( 1957 )
27 : 两杆大烟枪 -- Lock, Stock and Two Smoking Barrels ( 1998 )
28 : 天空之城 -- 天空の城ラピュタ ( 1986 )
29 : 怦然心动 -- Flipped ( 2010 )
30 : 海豚湾 -- The Cove ( 2009 )
31 : 飞屋环游记 -- Up ( 2009 )
32 : 大话西游之月光宝盒 -- 西遊記第壹佰零壹回之月光寶盒 ( 1995 )
33 : 飞越疯人院 -- One Flew Over the Cuckoo's Nest ( 1975 )
34 : 无间道 -- 無間道 ( 2002 )
35 : 鬼子来了 -- 鬼子来了 ( 2000 )
36 : 窃听风暴 -- Das Leben der Anderen ( 2006 )
37 : 少年派的奇幻漂流 -- Life of Pi ( 2012 )
38 : 蝙蝠侠:黑暗骑士 -- The Dark Knight ( 2008 )
39 : V字仇杀队 -- V for Vendetta ( 2005 )
40 : 熔炉 -- 도가니 ( 2011 )
41 : 闻香识女人 -- Scent of a Woman ( 1992 )
42 : 天使爱美丽 -- Le fabuleux destin d'Amélie Poulain ( 2001 )
43 : 活着 -- 活着 ( 1994 )
44 : 美丽心灵 -- A Beautiful Mind ( 2001 )
45 : 指环王1:魔戒再现 -- The Lord of the Rings: The Fellowship of the Ring ( 2001 )
46 : 指环王2:双塔奇兵 -- The Lord of the Rings: The Two Towers ( 2002 )
47 : 教父2 -- The Godfather: Part Ⅱ ( 1974 )
48 : 哈尔的移动城堡 -- ハウルの動く城 ( 2004 )
49 : 七宗罪 -- Se7en ( 1995 )
50 : 情书 -- Love Letter ( 1995 )
51 : 勇敢的心 -- Braveheart ( 1995 )
52 : 剪刀手爱德华 -- Edward Scissorhands ( 1990 )
53 : 死亡诗社 -- Dead Poets Society ( 1989 )
54 : 美国往事 -- Once Upon a Time in America ( 1984 )
55 : 钢琴家 -- The Pianist ( 2002 )
56 : 致命魔术 -- The Prestige ( 2006 )
57 : 狮子王 -- The Lion King ( 1994 )
58 : 音乐之声 -- The Sound of Music ( 1965 )
59 : 被嫌弃的松子的一生 -- 嫌われ松子の一生 ( 2006 )
60 : 小鞋子 -- بچههای آسمان ( 1997 )
61 : 低俗小说 -- Pulp Fiction ( 1994 )
62 : 入殓师 -- おくりびと ( 2008 )
63 : 蝴蝶效应 -- The Butterfly Effect ( 2004 )
64 : 玛丽和马克思 -- Mary and Max ( 2009 )
65 : 沉默的羔羊 -- The Silence of the Lambs ( 1991 )
66 : 本杰明·巴顿奇事 -- The Curious Case of Benjamin Button ( 2008 )
67 : 星际穿越 -- Interstellar ( 2014 )
68 : 黑客帝国 -- The Matrix ( 1999 )
69 : 拯救大兵瑞恩 -- Saving Private Ryan ( 1998 )
70 : 第六感 -- The Sixth Sense ( 1999 )
71 : 大鱼 -- Big Fish ( 2003 )
72 : 射雕英雄传之东成西就 -- 射鵰英雄傳之東成西就 ( 1993 )
73 : 幽灵公主 -- もののけ姫 ( 1997 )
74 : 饮食男女 -- 飲食男女 ( 1994 )
75 : 让子弹飞 -- 让子弹飞 ( 2010 )
76 : 西西里的美丽传说 -- Malèna ( 2000 )
77 : 心灵捕手 -- Good Will Hunting ( 1997 )
78 : 阳光姐妹淘 -- 써니 ( 2011 )
79 : 阳光灿烂的日子 -- 阳光灿烂的日子 ( 1994 )
80 : 辩护人 -- 변호인 ( 2013 )
81 : 上帝之城 -- Cidade de Deus ( 2002 )
82 : 萤火虫之墓 -- 火垂るの墓 ( 1988 )
83 : 大闹天宫 -- 大闹天宫 ( 1961 )
84 : 重庆森林 -- 重慶森林 ( 1994 )
85 : 春光乍泄 -- 春光乍洩 ( 1997 )
86 : 致命ID -- Identity ( 2003 )
87 : 甜蜜蜜 -- 甜蜜蜜 ( 1996 )
88 : 禁闭岛 -- Shutter Island ( 2010 )
89 : 加勒比海盗 -- Pirates of the Caribbean: The Curse of the Black Pearl ( 2003 )
90 : 告白 -- 告白 ( 2010 )
91 : 爱在黎明破晓前 -- Before Sunrise ( 1995 )
92 : 阿凡达 -- Avatar ( 2009 )
93 : 风之谷 -- 風の谷のナウシカ ( 1984 )
94 : 一一 -- 一一 ( 2000 )
95 : 爱在日落黄昏时 -- Before Sunset ( 2004 )
96 : 海洋 -- Océans ( 2009 )
97 : 燃情岁月 -- Legends of the Fall ( 1994 )
98 : 驯龙高手 -- How to Train Your Dragon ( 2010 )
99 : 侧耳倾听 -- 耳をすませば ( 1995 )
100 : 控方证人 -- Witness for the Prosecution ( 1957 )
over!
>>>
这个简单的小程序就完成了,还有很多要改进的地方,不过既然开头了,以后都好说。豆瓣API返回值大部分都是json,所以用API爬数据时要注意对json的处理,返回的json格式API例子都有,搞一下就行,继续学习中。
小试牛刀--利用豆瓣API爬取豆瓣电影top250的更多相关文章
- PYTHON 爬虫笔记八:利用Requests+正则表达式爬取猫眼电影top100(实战项目一)
利用Requests+正则表达式爬取猫眼电影top100 目标站点分析 流程框架 爬虫实战 使用requests库获取top100首页: import requests def get_one_pag ...
- Python 2.7_利用xpath语法爬取豆瓣图书top250信息_20170129
大年初二,忙完家里一些事,顺带有人交流爬取豆瓣图书top250 1.构造urls列表 urls=['https://book.douban.com/top250?start={}'.format(st ...
- 利用正则+requests爬取猫眼电影信息
import json # from multiprocessing import Pool import requests from requests.exceptions import Reque ...
- 利用Python爬取豆瓣电影
目标:使用Python爬取豆瓣电影并保存MongoDB数据库中 我们先来看一下通过浏览器的方式来筛选某些特定的电影: 我们把URL来复制出来分析分析: https://movie.douban.com ...
- 爬取豆瓣电影影评,生成wordcloud词云,并利用监督学习根据评论自动打星
本文的完整源码在git位置:https://github.com/OceanBBBBbb/douban-ml 爬取豆瓣影评 爬豆瓣的影评比较简单,豆瓣没有做限制,甚至你都不用登陆就可以看全部,我这里用 ...
- scrapy爬虫框架教程(二)-- 爬取豆瓣电影TOP250
scrapy爬虫框架教程(二)-- 爬取豆瓣电影TOP250 前言 经过上一篇教程我们已经大致了解了Scrapy的基本情况,并写了一个简单的小demo.这次我会以爬取豆瓣电影TOP250为例进一步为大 ...
- urllib+BeautifulSoup无登录模式爬取豆瓣电影Top250
对于简单的爬虫任务,尤其对于初学者,urllib+BeautifulSoup足以满足大部分的任务. 1.urllib是Python3自带的库,不需要安装,但是BeautifulSoup却是需要安装的. ...
- python2.7爬取豆瓣电影top250并写入到TXT,Excel,MySQL数据库
python2.7爬取豆瓣电影top250并分别写入到TXT,Excel,MySQL数据库 1.任务 爬取豆瓣电影top250 以txt文件保存 以Excel文档保存 将数据录入数据库 2.分析 电影 ...
- 零基础爬虫----python爬取豆瓣电影top250的信息(转)
今天利用xpath写了一个小爬虫,比较适合一些爬虫新手来学习.话不多说,开始今天的正题,我会利用一个案例来介绍下xpath如何对网页进行解析的,以及如何对信息进行提取的. python环境:pytho ...
随机推荐
- cf 731f
题意:给你一组数,让你先选一个数,然后把其他数缩小成他的倍数,然后求和,求最大值. 思路:很显然,对于数i,在i*j到i*(j+1)-1之间的数都应该缩小成i*j,又由于数均小于等于200000这个通 ...
- eclipse或者myeclipse安装svn报错”unable to load default svn client”
是svn版本低了的问题 subeclipse下载,直接百度site1.X X为你需要的版本 解压site1.X 将此窗口先放到一边 在eclipse的安装目录下的dr ...
- lucene和ElasticSearch基本概念
lucene基本概念 索引(Index) 对应一个倒排表,一个检索的基本单位.在lucene中就对应一个目录. lucene基本概念 段(Segment) 一个索引可以包含多个段,段与段之间是独立的, ...
- FileReader对象
在一些项目中,经常会遇到图片上传的情况,为了提高用户体验,一般会要求选择图片后 能预览一下图片. 以前的做法是 通过 ajax上传图片后,然后再显示出来,这样会产生大量的无用的图片文件,在HTML5的 ...
- js之字符串操作
1.字符串查找 var str = "source_content10"; if(str.indexOf("source_content") !== false ...
- 如何取消MSSQL自带智能提示步骤,使用第三方智能提示插件
步骤1如下: [工具]——[选项]——[文本编辑器]——[Transact-SQL]——[IntelliSense]——[Transact-SQL IntelliSense 设置]——(取消选择)—— ...
- JS浮点数的加减乘除运算
文章来源地址:http://blog.csdn.net/lyd518/article/details/7236464 转载请注明出处,尊重作者劳动成果,谢谢!问题这样的: 37.5*5.5=206.0 ...
- poj 2761 Feed the dogs (treap树)
/************************************************************* 题目: Feed the dogs(poj 2761) 链接: http: ...
- Oracle 表空间
表空间 编辑 本词条缺少信息栏,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧! 表空间是数据库的逻辑划分,一个表空间只能属于一个数据库.所有的数据库对象都存放在指定的表空间中.但主要存放的是表 ...
- Android 遮罩层效果
(用别人的代码进行分析) 不知道在开发中有没有经常使用到这种效果,所谓的遮罩层就是给一张图片不是我们想要的形状,这个时候我们就可以使用遮罩效果把这个图片变成我们想要的形状,一般使用最多就是圆形的效果, ...