之前也百度了一下如何获取新浪微博cookie,附上其中出现频率最高的教程的网址 https://www.douban.com/note/264976536/?start=0#32893498
自己按照上面的步骤试了一下,然后发现找不到weibo.com,然后就试了一下其他的
首先也是用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