使用cookiejar模拟登录微博,获取登录后的页面数据
来源:互联网 发布:肯尼迪v5数据 编辑:程序博客网 时间:2024/05/22 04:30
一、导入模块
import urllib.requestimport http.cookiejarimport urllib.parseimport sslssl._create_default_https_context = ssl._create_unverified_context
二、依次创建cookiejar对象、handler对象、opener对象
cookie = http.cookiejar.CookieJar()handler = urllib.request.HTTPCookieProcessor(cookie)opener = urllib.request.build_opener(handler)
三、模拟登录数据
- 获取登录表单的提交地址
post_url = 'https://passport.weibo.cn/sso/login'
- 查看表单提交字段,设计模拟数据
data = { 'username':'18570329382', 'password':'1126482', 'savestate':'1', 'r':'http://weibo.cn/', 'ec':'0', 'pagerefer':'', 'entry':'mweibo', 'wentry':'' , 'loginfrom':'', 'client_id':'', 'code':'', 'qq':'', 'mainpageflag':'1', 'vid':'fef0ad08eb4bf0b3e04a026f8778705614f877870561', 'hff':'', 'hfp':'',}data = urllib.parse.urlencode(data).encode('utf-8')
- 构造headers
headers = { 'Host': 'passport.weibo.cn', 'Connection':'keep-alive', 'Content-Length':'219', 'Origin':'https://passport.weibo.cn', 'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_1) AppleWebKit/537.36 (KHTML like Gecko) Chrome/63.0.3239.84 Safari/537.36', 'Content-Type': 'application/x-www-form-urlencoded', 'Accept':'*/*', 'Referer':'https://passport.weibo.cn/signin/login?entry=mweibo&r=http%3A%2F%2Fweibo.cn%2F&backTitle=%CE%A2%B2%A9&vt=', 'Accept-Encoding':'gzip, deflate, br', 'Accept-Language':'zh-CN,zh;q=0.9', }
四、模拟请求
request = urllib.request.Request(url=post_url,data=data,headers=headers)
五、发送请求进行登录
response = opener.open(request)
六、用opener对象访问登录后的详情页(opner对象自动保存了登录后的cookies)
url = 'https://weibo.cn/5613030371/info'headers1 = { 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_1) AppleWebKit/537.36 (KHTML like Gecko) Chrome/63.0.3239.84 Safari/537.36',}request = urllib.request.Request(url=url,headers=headers1)response1 = opener.open(request)print(response1.read())
阅读全文