zoukankan      html  css  js  c++  java
  • 小试牛刀--利用豆瓣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时):

    JsonPython
    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):

    PythonJSON
    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例子都有,搞一下就行,继续学习中。

     


     

  • 相关阅读:
    Apple Mac OS X每日一技巧002:如何修改打开文档的默认程序
    Baby听世界03:这就是电影啊??!!
    八卦一下,51JOB人才库搜索上海地区含有.NET关键字的期望收入和对应的人数
    接口和抽象类的区别
    总结virtual override sealed new在方法上的应用
    JQuery学习笔记01JQuery初接触
    《C#妹妹和ObjectiveC阿姨对话录》(03)NSString--再遇狗狗
    Mac新手常见问题
    Baby听世界01:产检
    Apple Mac OS X每日一技巧001:如何添加删除开机启动程序项
  • 原文地址:https://www.cnblogs.com/littleseven/p/5383043.html
Copyright © 2011-2022 走看看