pythonurllib新浪微博_python模拟登录新浪微博抓取数据(cookielib和urllib2).doc

本文介绍如何使用Python的cookielib和urllib2模块来模拟登录新浪微博并抓取数据,通过Firefox的httpfox观察登录过程,然后在代码中重现,适用于需要保存cookie进行网站访问的场景。
摘要由CSDN通过智能技术生成

HYPERLINK "/article/python/22972.html" /article/python/22972.html

python模拟登录新浪微博抓取数据(cookielib和urllib2)

发布时间:2014-07-11编辑: HYPERLINK "/" 脚本学堂

本文介绍了python模拟登录新浪微博的例子,python使用cookielib和urllib2模块实现模拟登陆新浪微博抓取数据,需要的朋友参考下。

http是无连接的状态协议,但是客户端和 HYPERLINK "/server/" \t "/article/python/_blank" 服务器端需要保持一些相互信息,比如cookie,有了cookie,服务器才能知道刚才是这个用户登录了网站,才会给予客户端访问一些页面的权限。

用浏览器登录 HYPERLINK "/" \t "/article/python/_blank" 新浪微博,必须先登录,登陆成功后,打开其他的网页才能够访问。用程序登录新浪微博或其他验证网站,关键在于需要保存cookie,之后附带cookie再来访问网站,才能够达到效果。

需要 HYPERLINK "/jb/python/" \t "/article/python/_blank" python的cookielib和urllib2等的配合,将cookielib绑定到urllib2在一起,就能够在请求网页的时候附带cookie。

首先第一步,用firefox的httpfox插件,在浏览器衷开始浏览新浪微博首页,然后登陆,从httpfox的记录中,查看每一步发送了那些数据请求了那个URL;之后在python中模拟这个过程,用urllib2.urlopen发送用户名密码到登陆页面,获取登陆后的cookie,之后访问其他页面,获取微博数据。

代码:?

复制代码代码示例:

#!/usr/bin/python#site: # coding=utf8import urllibimport urllib2import cookielibimport base64import reimport jsonimport hashlib?# 获取一个保存cookie的对象cj = cookielib.LWPCookieJar()# 将一个保存cookie对象,和一个HTTP的cookie的处理器绑定cookie_support = urllib2.HTTPCookieProcessor(cj)# 创建一个opener,将保存了cookie的http处理器,还有设置一个handler用于处理http的URL的打开opener = urllib2.build_opener(cookie_support, urllib2.HTTPHandler)# 将包含了cookie、http处理器、http的handler的资源和urllib2对象板顶在一起urllib2.install_opener(opener)?postdata = {??? 'entry': 'weibo',??? 'gateway': '1',??? 'from': '',??? 'savestate': '7',??? 'userticket': '1',??? 'ssosimplelogin': '1',??? 'vsnf': '1',??? 'vsnval': '',??? 'su': '',??? 'service': 'miniblog',??? 'servertime': '',??? 'nonce': '',??? 'pwencode': 'wsse',??? 'sp': '',??? 'encoding': 'UTF-8',??? 'url': '/ajaxlogin.php?framelogin=1&callback=parent.sinaSSOController.feedBackUrlCallBack',??? 'returntype': 'META'}?def get_servertime():???? url = '/sso/prelogin.php?entry=weibo&callback=sinaSSOController.preloginCallBack&su=dW5kZWZpbmVk&client=ssologin.js(v1.3.18)&_=1329806375939'??? data = urllib2.urlopen(url).read()??? p = pile('\((.*)\)')??? try:??????? json_data = p.sear

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值