访问登录后的页面
(1)抓包,抓取浏览器的cookie值,然后到代码中应用
import urllib.request
url = 'http://www.renren.com/960481378/profile'
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36',
'Cookie': 'anonymid=joprgd33-y2bj9z; depovince=GW; _r01_=1; _de=F872F5698F7602B30ADE65415FC01940; __utma=151146938.2105670176.1542719747.1542719747.1542719747.1; __utmz=151146938.1542719747.1.1.utmcsr=renren.com|utmccn=(referral)|utmcmd=referral|utmcct=/; ln_uact=17701256561; ln_hurl=http://head.xiaonei.com/photos/0/0/men_main.gif; jebecookies=e621f5ad-f276-4c15-9295-140db925925c|||||; JSESSIONID=abcrUAciE-gke9G9Zn0Cw; ick_login=cacbb938-07aa-4183-a48c-617552e91146; p=b122bab3258e9e4097a454030b6601228; first_login_flag=1; t=68458fa70733a852200147b1256f12f48; societyguester=68458fa70733a852200147b1256f12f48; id=960481378; xnsid=cbc787ec; ver=7.0; loginfrom=null; wp_fold=0; jebe_key=ad44d5da-0eed-4cb8-b5f1-26af525dc3af%7C86ba94a3b75a9848502e25ac92562959%7C1542769529576%7C1; jebe_key=ad44d5da-0eed-4cb8-b5f1-26af525dc3af%7C86ba94a3b75a9848502e25ac92562959%7C1542769529576%7C1%7C1542769975875',
}
request = urllib.request.Request(url=url, headers=headers)
response = urllib.request.urlopen(request)
with open('renren.html', 'wb') as fp:
fp.write(response.read())
(2)模拟登陆(post get)
import urllib.request
import urllib.parse
import http.cookiejar
# 如何让代码保存和携带cookie
# 创建一个cookiejar对象
cj = http.cookiejar.CookieJar()
# 根据cj创建一个handler
handler = urllib.request.HTTPCookieProcessor(cj)
# 根据handler创建opener
opener = urllib.request.build_opener(handler)
# 再往下所有的请求发送都使用opener.open()方法发送,那么代码就会自动的保存和携带cookie
# 模拟登陆
post_url = 'http://www.renren.com/ajaxLogin/login?1=1&uniqueTimestamp=2018103114589'
formdata = {
'email': '17701256561',
'icode': '',
'origURL': 'http://www.renren.com/home',
'domain': 'renren.com',
'key_id': '1',
'captcha_type': 'web_login',
'password': '83bf942d2087fbdaa83edd561858f6a243073e1dd79f014a52922756ca2e34e8',
'rkey': 'ac9e72c02e87ddb2d364071e5ef990f4',
'f': 'http%3A%2F%2Fwww.renren.com%2F960481378%2Fprofile',
}
# 处理表单数据
formdata = urllib.parse.urlencode(formdata).encode('utf8')
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36',
}
post_request = urllib.request.Request(url=post_url, headers=headers)
response = opener.open(post_request, data=formdata)
print(response.read().decode('utf8'))
# 访问登陆后的页面
get_url = 'http://www.renren.com/960481378/profile'
get_request = urllib.request.Request(url=get_url, headers=headers)
response = opener.open(get_request)
with open('renren2.html', 'wb') as fp:
fp.write(response.read())