新浪微博爬虫策略
2016-05-09 23:50
302 查看
import requests
import json
import base64
def login(username, password):
username = base64.b64encode(username.encode('utf-8')).decode('utf-8')
postData = {
"entry": "sso",
"gateway": "1",
"from": "null",
"savestate": "30",
"useticket": "0",
"pagerefer": "",
"vsnf": "1",
"su": username,
"service": "sso",
"sp": password,
"sr": "1440*900",
"encoding": "UTF-8",
"cdult": "3",
"domain": "sina.com.cn",
"prelt": "0",
"returntype": "TEXT",
}
loginURL = r'https://login.sina.com.cn/sso/login.php?client=ssologin.js(v1.4.15)'
session = requests.Session()
res = session.post(loginURL, data = postData)
jsonStr = res.content.decode('gbk')
info = json.loads(jsonStr)
if info["retcode"] == "0":
print("登录成功")
# 把cookies添加到headers中,必须写这一步,否则后面调用API失败
cookies = session.cookies.get_dict()
cookies = [key + "=" + value for key, value in cookies.items()]
cookies = "; ".join(cookies)
session.headers["cookie"] = cookies
else:
print("登录失败,原因: %s" % info["reason"])
return session
if __name__ == '__main__':
session = login('你的用户名', '你的密码')
这里提供一种获得新浪微博Session的方法。转载别人的方法,亲测有效,这里贴出原作者的博客:岁月如歌
返回的session保存了登录状态,尽情做你做想做的事吧。
当然,这里建议用上面方法获得的Session爬移动端的新浪微博页面:移动端微博 ,一样可用。
import json
import base64
def login(username, password):
username = base64.b64encode(username.encode('utf-8')).decode('utf-8')
postData = {
"entry": "sso",
"gateway": "1",
"from": "null",
"savestate": "30",
"useticket": "0",
"pagerefer": "",
"vsnf": "1",
"su": username,
"service": "sso",
"sp": password,
"sr": "1440*900",
"encoding": "UTF-8",
"cdult": "3",
"domain": "sina.com.cn",
"prelt": "0",
"returntype": "TEXT",
}
loginURL = r'https://login.sina.com.cn/sso/login.php?client=ssologin.js(v1.4.15)'
session = requests.Session()
res = session.post(loginURL, data = postData)
jsonStr = res.content.decode('gbk')
info = json.loads(jsonStr)
if info["retcode"] == "0":
print("登录成功")
# 把cookies添加到headers中,必须写这一步,否则后面调用API失败
cookies = session.cookies.get_dict()
cookies = [key + "=" + value for key, value in cookies.items()]
cookies = "; ".join(cookies)
session.headers["cookie"] = cookies
else:
print("登录失败,原因: %s" % info["reason"])
return session
if __name__ == '__main__':
session = login('你的用户名', '你的密码')
这里提供一种获得新浪微博Session的方法。转载别人的方法,亲测有效,这里贴出原作者的博客:岁月如歌
返回的session保存了登录状态,尽情做你做想做的事吧。
当然,这里建议用上面方法获得的Session爬移动端的新浪微博页面:移动端微博 ,一样可用。
相关文章推荐
- html自学笔记(css3字体以及动画)
- 跟着远叔学Spring系列(二)——Spring概述
- fork bomb
- TestNG Annotations示例
- Oracle的硬解析和软解析
- 手动抓取爱奇艺和优酷等视频网站的视频
- Linux Shell 使用技巧
- 【NPR】非真实感渲染实验室
- 基于Solr实现HBase的二级索引
- 无法关闭了HtmlUnit日志信息
- UVa 1328 Period
- C#集合2
- 《疯狂java讲义》第四章五子棋思考
- UVa 1328 Period
- 1-1 求N!
- The Definitive Antlr 4 第4章学习笔记
- App接口设计思路
- 当删除线遇到适配器时出现的问题
- 类加载的三个准备工作
- POJ 2752 (KMP)