获取新浪微博cookie
Posted EmilySun
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了获取新浪微博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
以上是关于获取新浪微博cookie的主要内容,如果未能解决你的问题,请参考以下文章