获取新浪微博cookie

之前也百度了一下如何获取新浪微博cookie,附上其中出现频率最高的教程的网址 https://www.douban.com/note/264976536/?start=0#32893498

自己按照上面的步骤试了一下,然后发现找不到weibo.com,然后就试了一下其他用移动端微博就可以 www.weibo.cn

首先也是用chrome浏览器打开,F12打开(我的键盘好像没有转换,所以要用Fn+F12),或者右键->检查

其他。。如图吧,找到然后复制cookie那一长串

 

为了验证,我顺带试了一下这个将Cookie作为访问微博的header参数提交的例子https://gist.github.com/ghostrong/d10c061000b7b65e5039

附上源代码

#coding=gbk


""" Simulate a user login to Sina Weibo with cookie.
You can use this method to visit any page that requires login.
"""


import urllib2
import re


cookie = ‘your cookie'  # get your cookie from Chrome or Firefox
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; rv:24.0) Gecko/20100101 Firefox/24.0',
    'cookie': cookie
}


def visit():
    url = 'http://weibo.com'
    req = urllib2.Request(url, headers=headers)
    text = urllib2.urlopen(req).read()

    # print the title, check if you login to weibo sucessfully
    pat_title = re.compile('<title>(.+?)</title>')
    r = pat_title.search(text)
    if r:
        print r.group(1).decode("utf-8")


if __name__ == '__main__':
    visit()

原来的代码第一行的编码定义是 #coding=utf-8

但是我在运行的时候就一直出现输出乱码的问题,然后就又查了一下资料,附上链接 http://www.cnblogs.com/FlyCat/archive/2013/04/06/3002885.html

乱码产生的原因是Python在读取时默认解码方式是用操作系统编码,如果和保存时的编码方式不一样,就会出现乱码

比如以下片段,文件保存格式是utf-8

#coding=utf-8
print '' #输出乱码

因为windows默认的编码方式是GBK,python文件保存时使用了utf-8,在读取时,python使用GBK的编码表去解utf-8编码的字节码,因为GBK与UTF-8编码不兼容,自然出现了乱码问题

解决方法:

1.直接使用 u'是' 形式,指明以unicode编码,解码方式会以顶部 #coding定义的编码方式,如果不写,以操作系统当前编码方法,建议写上#coding,因为要让操作系统编码和源文件编码经常会不一样。推荐使用这种方式

2.输出时指定解码方法  print '是'.decode("utf8") ,必须和保存的编码一致,忽略#coding的定义

3.将#coding 和保存编码改为和操作系统一样的编码,就可以直接print '是' 正常输出,也不推荐,因为需要事先知道操作系统编码,复制到其他电脑上,操作系统编码不一样就会出错

#coding=gbk
print u'' #方法1
print ''.decode("gbk") #方法2
print '' #方法3
posted @ 2016-12-10 20:12  JessieSun  阅读(17844)  评论(0编辑  收藏  举报