最近得赶进度爬点东西,对于豆瓣,它为开发者提供了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例子都有,搞一下就行,继续学习中。