通过豆瓣API获取用户的影评信息,存入到字典中格式为 {电影名:评分}

# -*- coding: utf-8 -*-

'''

Created on May 19, 2012

@author: Edison

'''

import urllib2

import json

import string, pickle

def getData(name, start_index, movie_dict):

'''获取用户的电影数据'''

MAX_RESULTS = 50  #douban目前API一次最多返回50条记录

API_KEY = 'xxx'

req = urllib2.Request('http://api.douban.com/people/'+name+'/collection?cat=movie&status=watched&alt=json' +

'&apikey='+API_KEY+

'&max-results=' + str(MAX_RESULTS)+

'&start-index='+ str(start_index))

response = urllib2.urlopen(req).read()

mfile = open('movies.json',"w+")

mfile.write(response.encode('utf-8'))

mfile.close()

json_data = json.loads(response)

#如果获取到所有的用户数据

if 0==len(json_data['entry']):

return

else:

count = 0

for entry in json_data['entry']:

movie_name = entry["db:subject"]["title"]["$t"]

if "gd:rating" in entry: #部分电影没有任何评分,就不存入字典

movie_rate = string.atoi(entry["gd:rating"]["@value"])

movie_dict[movie_name] = movie_rate

else:

movie_rate = 'no_rate'

print count

count += 1

#递归获取所有数据

start_index += MAX_RESULTS

print start_index

getData(name, start_index, movie_dict)

if __name__ == "__main__":

start_index = 0

name_a='xxx'

movie_dict_a = {}

getData(name_a, start_index, movie_dict_a)

outf = file('xxx_aquar25_movie_dict','wb') #{moive_name:rate,moive_name:rate}

pickle.dump(movie_dict_a, outf)  #序列化到文件中

outf.close()

关于中文编码

字符是一种表现形式,它在内存中都是以字节8bit存储的,str是8bit的字符,而Unicode是16bit字符,Unicode在内存中存储时也是以byte进行存储的,因此print utf-8编码的字符串都是一系列字节数字。unicode字符可以和普通字符串一样进行各种操作,甚至作为字典的key。如字典{u'\u4e54\u6cbb\u514b\u9c81\u5c3c': u'\u7537'},实际上是{'乔治克鲁尼':'男'} 乔治克鲁尼用utf-8编码的字节序列为'\xe4\xb9\x94\xe6\xb2\xbb\xe5\x85\x8b\xe9\xb2\x81\xe5\xb0\xbc'

字节序列str===>str.decode('字节序列的编码')====>unicode字符串(如u=u'\u4600')====>u.encode("gb2312")

一般情况下,在程序中处理字符串时都使用unicode对象,即u开头的字符,而只有在输出的时候再对字符串使用encode()按照需要进行编码。在用数据进行测试时,不仅要使用编码值<127的字符,更要使用编码值大于255的字符,如汉字来进行测试保证程序的兼容性。

python大规模获取豆瓣影评_Python 获取豆瓣用户电影收藏数据相关推荐

  1. python大规模获取豆瓣影评_python爬取豆瓣电影排行榜(requests)

    ''' 爬取豆瓣电影排行榜 设计思路: 1.先获取电影类型的名字以及特有的编号 2.将编号向ajax发送get请求获取想要的数据 3.将数据存放进excel表格中 ''' 环境部署: 软件安装: 模块 ...

  2. python通往天堂的选择_python获取电影天堂各版块电影

    [Python] 纯文本查看 复制代码#-*-coding:UTF-8-*- import re import requests import json from lxml import etree ...

  3. python获取当前年月日_Python获取、格式化当前时间日期的方法

    Python获取当前时间_获取格式化时间: Python获取当前时间: 使用 time.time( ) 获取到距离1970年1月1日的秒数(浮点数),然后传递给 localtime 获取当前时间 #使 ...

  4. python读取时间序列csv可视化_Python获取时序数据并进行可视化分析

    本帖最后由 林宝宝 于 2019-7-31 17:29 编辑 问题导读: 1.获取第三方平台的接口数据的方法是什么? 2.怎么做数据清洗与合并?主要有数据类型转换.重新排序.索引重置.数据合并 3.时 ...

  5. python 柱状图上显示字体_Python爬取百部电影数据,我发现了这个惊人真相!

    2019年就这么匆匆过去了,就在前几天国家电影局发布了2019年中国电影市场数据,数据显示去年总票房为642.66亿元,同比增长5.4%:国产电影总票房411.75亿元,同比增长8.65%,市场占比 ...

  6. python翻页爬豆瓣影评_Python超级简单的爬虫案例--爬豆瓣影评为例

    今天试了下Python的爬虫,果然简单的一批,适合懵懂的小白.就先放代码吧... from bs4 import BeautifulSoup import requests url = 'https: ...

  7. 如何用python完成评分功能呢_Python:豆瓣电影评分

    一.功能需求: 作为一个经常看电影的人,需要对豆瓣电影资源进行分类,豆瓣上有一个交互不友好的地方,每个网页中存在的信息太多,没有办法一次性浏览完,而且部分相应的功能必须点击进入电影界面才能看到,因此个 ...

  8. python 打开网页开发者工具_Python获取网页指定内容(BeautifulSoup工具的使用方法)...

    page = urllib2.urlopen(url) contents = page.read() #获得了整个网页的内容也就是源代码 print(contents) url代表网址,content ...

  9. python实例豆瓣代码_Python制作豆瓣图片的爬虫实例代码

    Python制作豆瓣图片的爬虫 前段时间自学了一段时间的Python,想着浓一点项目来练练手.看着大佬们一说就是爬了100W+的数据就非常的羡慕,不过对于我这种初学者来说,也就爬一爬图片. 我相信很多 ...

最新文章

  1. (送)Java 架构技术揭秘:Redis+Nginx+Dubbo精选+面试题+精选视频
  2. C#调用Win32 的API函数--User32.dll
  3. java实现选项卡定时轮播_原生js面向对象编程-选项卡(自动轮播)
  4. 【自动驾驶】9.分布式通信技术之发布订阅,干货满满
  5. 江苏一动物园现“旋转活马” 园方:创意来自马术训练
  6. msf各种弱口令爆破
  7. 大数据工具使用——安装Hadoop(多台服务器)和Hive、Hbase
  8. 2021年“最美科技工作者”李德仁院士:科学要为祖国服务
  9. java author 认证_详解Java后端优雅验证参数合法性
  10. SQL Server-SQL事务处理(Stransaction)
  11. 谈谈对一些软件架构设计箴言的理解 对软件的过早地优化是万恶的根源 反设计模式案例简介...
  12. 双系统下Mac可以这样卸载windows系统
  13. 服务器ie浏览器总是未响应怎么办,电脑ie浏览器老是无响应怎么办
  14. 代码比较工具——DiffMerge的安装教程
  15. 在线生成 html 页面,细说在线版H5页面生成器
  16. 歌声合成理论教程(1)
  17. waf 防火墙限制_WAF防火墙设备指标及参数说明
  18. 输出满足某种条件的素数(C语言)
  19. 工业物联网的价值有哪些
  20. 赵栋 java_赵栋 201771010137 《面向对象程序设计(java)》

热门文章

  1. Firebug的简介
  2. SpringBoot 本地缓存的使用
  3. 2-25 MySQL基础
  4. 1.15.ARM汇编指令3之逻辑指令
  5. 【JokerのKCU105】SGMII。
  6. gcastdtserv.exe
  7. ADIS16470从到手到读出完整数据,附例程
  8. 华中数控系统c语言,如何用C语言编写华中数控系统PLC程序
  9. Android自动化打包部署及配置文档
  10. (echarts)引入折线图