模拟登录新浪微博(直接填入Cookie)
之前写过一篇模拟登录新浪微博,是采用POST 用户名/密码等参数(经过加密)并保存Cookie来模拟登录的方法。
一般情况下,为了保证安全性,网站会定期更新登录的detail,例如修改参数名、更新加密(散列)算法等。所以模拟登录的代码定期肯定会失效,但是如果网站没有进行大的更新的话,稍微改一改还是能用的。另外,碰到验证码的情况就更难办了,虽然程序可以一定程度地识别验证码字符,但目前很难找到简单的可以通用的验证码识别程序。
很多豆友反馈有模拟登录新浪微博抓取数据的需求,其实对于一般的微博数据获取,如用户信息、微博内容等,使用微博开放平台API是更明智的选择:速度更快,而且节省许多网页处理的功夫。对于API没有开放的数据,我们再采用模拟登录的方法。
熟悉Web的朋友只要定期维护模拟登录的代码就可以一直成功登录微博。如果不那么熟悉的话,其实可以采用更naive的思路来解决:直接将Cookie发送给新浪微博以实现模拟登录。
1,获取Cookie
很简单,使用Chrome浏览器的”开发者工具(Developer Tools)“或者Firefox的"HTTPFOX"等插件就可以直接查看自己新浪微博的Cookie。(注: 这个私人Cookie千万不要泄露哦!)
比如,Chrome 查看cookie (快捷键F12 可以调出chrome开发者工具)
2, 将Cookie作为访问微博的header参数提交
headers = {'cookie': 'your cookie'}
req = urllib2.Request(url, headers=headers) #每次访问页面都带上 headers参数
r = urllib2.urlopen(req)
具体代码见:https://gist.github.com/ghostrong/d10c061000b7b65e5039
一般情况下,为了保证安全性,网站会定期更新登录的detail,例如修改参数名、更新加密(散列)算法等。所以模拟登录的代码定期肯定会失效,但是如果网站没有进行大的更新的话,稍微改一改还是能用的。另外,碰到验证码的情况就更难办了,虽然程序可以一定程度地识别验证码字符,但目前很难找到简单的可以通用的验证码识别程序。
很多豆友反馈有模拟登录新浪微博抓取数据的需求,其实对于一般的微博数据获取,如用户信息、微博内容等,使用微博开放平台API是更明智的选择:速度更快,而且节省许多网页处理的功夫。对于API没有开放的数据,我们再采用模拟登录的方法。
熟悉Web的朋友只要定期维护模拟登录的代码就可以一直成功登录微博。如果不那么熟悉的话,其实可以采用更naive的思路来解决:直接将Cookie发送给新浪微博以实现模拟登录。
1,获取Cookie
很简单,使用Chrome浏览器的”开发者工具(Developer Tools)“或者Firefox的"HTTPFOX"等插件就可以直接查看自己新浪微博的Cookie。(注: 这个私人Cookie千万不要泄露哦!)
比如,Chrome 查看cookie (快捷键F12 可以调出chrome开发者工具)
cookie in chrome |
2, 将Cookie作为访问微博的header参数提交
headers = {'cookie': 'your cookie'}
req = urllib2.Request(url, headers=headers) #每次访问页面都带上 headers参数
r = urllib2.urlopen(req)
具体代码见:https://gist.github.com/ghostrong/d10c061000b7b65e5039
热门话题 · · · · · · ( 去话题广场 )
- 现代人的“卡夫卡时刻” 1425次浏览
- 身边的科普现场 新话题
- 维系精神生活的北京角落 840次浏览
- 少年时代的科普读物 新话题
- 一人一杯一口入魂的夏日特饮 9803次浏览
- 我在网络上感受到的陌生人善意 338次浏览