一、导入模块
import urllib.request
import http.cookiejar
import urllib.parse
import ssl
ssl._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 = {
'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())