python爬虫模拟登陆两种方法

第一种:
post提交密码与账号,进行访问

import urllib.request
import urllib.parse
import http.cookiejar

#在代码中保存cookie
#创建一个cookiejar对象
cj = http.cookiejar.CookieJar()
#通过cj创建一个headler
handler = urllib.request.HTTPCookieProcessor(cj)
opener = urllib.request.build_opener(handler)
#提交地址
post_url = 'http://www.renren.com/ajaxLogin/login?1=1&uniqueTimestamp=2019731422845'

formdata = {
    'email': '邮箱',
    'icode': '',
    'origURL': 'http://www.renren.com/home',
    'domain': 'renren.com',
    'key_id': '1',
    'captcha_type': 'web_login',
    'password': '密码',
    'rkey': '5f7a1d96ff48551fe2910f08a1a2ddcd',
    'f': 'http%3A%2F%2Fwww.renren.com%2F971784533%2Fnewsfeed%2Fphoto',
}

#处理表单数据
formdata = urllib.parse.urlencode(formdata).encode('utf8')

headers = {
    'Accept': '*/*',
    'Accept-Language': 'zh-CN,zh;q=0.9',
    'Connection': 'keep-alive',
    'Content-Type': 'application/x-www-form-urlencoded',
    'Host': 'www.renren.com',
    'Origin': 'http://www.renren.com',
    'Referer': 'http://www.renren.com/SysHome.do',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36',
    'X-Requested-With': 'XMLHttpRequest',
}

request =urllib.request.Request(url=post_url,headers=headers)

response = opener.open(request,data=formdata)
# print(response.read().decode('utf8'))

#访问登陆后的资料详情页面
pro_url = 'http://www.renren.com/971784533/profile'
request1 = urllib.request.Request(url=pro_url,headers=headers)
response1 = opener.open(request1)

with open('moni1.html','wb')as f:
    f.write(response1.read())

第二种:
也是一种万能方法更具cookie登陆

import urllib.request


url = 'http://www.renren.com/971784533/profile'

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36',
    'Cookie': '自己的cookie',

}

request = urllib.request.Request(url=url,headers=headers)

response = urllib.request.urlopen(request)

with open('renren.html','wb')as f:
    f.write(response.read())
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值