失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 爬虫模拟登录人人网的三种方法

爬虫模拟登录人人网的三种方法

时间:2019-06-08 07:01:32

相关推荐

爬虫模拟登录人人网的三种方法

# 登录人人网# 第一种,无验证码,直接post 账号密码 并且保存cookie信息到session 进行登录后的访问# 第一种,无验证码,直接post 账号密码 并且保存cookie信息到session 进行登录后的访问# 第一种,无验证码,直接post 账号密码 并且保存cookie信息到session 进行登录后的访问import requests# 使用session共享cookie(一次post一次get,必须是同一个session)url = "/PLogin.do"# 这里的email 和 password 都需要填写自己的账号密码这样才能够模拟浏览器发送登录请求# 我这里 未写,你们需要自己写入data = {"email": " ", 'password': " "}headers = {'User-Agent': "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36"}# 登录:session.postsession = requests.session()session.post(url, data=data, headers=headers)# 使用登录过的session访问大鹏个人中心:session.getresp = session.get('/880151247/profile', headers=headers)print(resp.text)

# 第二种,无验证码,最简单的一种,直接在请求头设置 登录成功后的 Cookie,来标识 用户身份 模拟登录(需要浏览器段手动登录 再复制cookie到headers里面进行请求)# 第二种,无验证码,最简单的一种,直接在请求头设置 登录成功后的 Cookie,来标识 用户身份 模拟登录(需要浏览器段手动登录 再复制cookie到headers里面进行请求)# 第二种,无验证码,最简单的一种,直接在请求头设置 登录成功后的 Cookie,来标识 用户身份 模拟登录(需要浏览器段手动登录 再复制cookie到headers里面进行请求)from urllib import request# 董成鹏 主页:'/880151247/profile'headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36','Cookie': '写入自己登陆后的 cookie信息'}# 模拟请求 访问董成鹏 页面url = '/880151247/profile'req = request.Request(url, headers=headers)resp = request.urlopen(req)with open('renren.html', 'w', encoding='utf-8') as fp:fp.write(resp.read().decode('utf-8'))

# 第三种,有无验证码即可使用,使用selenium自动输入 账号、密码、验证码(输入多次错误时出现)后登录成功并且获取cookie信息,再放到headers里面进行请求。# 第三种,有无验证码即可使用,使用selenium自动输入 账号、密码、验证码(输入多次错误时出现)后登录成功并且获取cookie信息,再放到headers里面进行请求。# 第三种,有无验证码即可使用,使用selenium自动输入 账号、密码、验证码(输入多次错误时出现)后登录成功并且获取cookie信息,再放到headers里面进行请求。import time, randomfrom selenium import webdriverimport requestsfrom urllib import requestfrom lxml import etreefrom PIL import Image# 加载驱动 从而 控制 浏览器driver = webdriver.Edge(r'D:\Study\tools\webdriver\edge\msedgedriver.exe')driver.get('/PLogin.do')time.sleep(2)# 先清空 表单再进行输入driver.find_element_by_id('email').clear()driver.find_element_by_id('email').send_keys('账号') # 输入用户名driver.find_element_by_id('password').clear()driver.find_element_by_id('password').send_keys('密码') # 输入密码img_url = '/getcode.do?t=web_login&rnd='+str(random.random())request.urlretrieve(img_url,'renren_yzm.jpg') # 下载验证码 到本地image = Image.open('renren_yzm.jpg') # 打开并且展示出来验证码image.show()# 因为有的时候不需要验证码,所以当找不到验证码对应的标签时 直接passtry:driver.find_element_by_id('icode').clear()img_res = input('输入验证码:') # 如果需要输入验证码,可以手工,或者接口给打码平台driver.find_element_by_id('icode').send_keys(img_res)except:pass# driver.find_element_by_id('autoLogin').click() # 自动登陆driver.find_element_by_id('login').click() # 登陆time.sleep(3)cookie_items = driver.get_cookies() # 获取cookie值post = {} # 保存cookie值for cookie in cookie_items:post[cookie['name']] = cookie['value']print(post['t']) # 人人网登陆后需要保持登陆的cookie信息driver.quit() # 退出selenium## 使用登陆后的 cookie 放在 headers里面 去请求 大鹏 页面url = '/880151247/profile'headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36 Edg/83.0.478.61','Cookie': 't='+post['t'],}response = requests.get(url,headers=headers)print('-'*50)html = etree.HTML(response.text)title = html.xpath('//title/text()')print('目前得到的页面信息', title)print(response.url)

如果觉得《爬虫模拟登录人人网的三种方法》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。