爬虫模拟登录人人网的三种方法
生活随笔
收集整理的這篇文章主要介紹了
爬虫模拟登录人人网的三种方法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
# 登錄人人網# 第一種,無驗證碼,直接post 賬號密碼 并且保存cookie信息到session 進行登錄后的訪問
# 第一種,無驗證碼,直接post 賬號密碼 并且保存cookie信息到session 進行登錄后的訪問
# 第一種,無驗證碼,直接post 賬號密碼 并且保存cookie信息到session 進行登錄后的訪問import requests
# 使用session共享cookie(一次post一次get,必須是同一個session)url = "http://www.renren.com/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.post
session = requests.session()
session.post(url, data=data, headers=headers)# 使用登錄過的session訪問大鵬個人中心:session.get
resp = session.get('http://www.renren.com/880151247/profile', headers=headers)
print(resp.text)
# 第二種,無驗證碼,最簡單的一種,直接在請求頭設置 登錄成功后的 Cookie,來標識 用戶身份 模擬登錄(需要瀏覽器段手動登錄 再復制cookie到headers里面進行請求)
# 第二種,無驗證碼,最簡單的一種,直接在請求頭設置 登錄成功后的 Cookie,來標識 用戶身份 模擬登錄(需要瀏覽器段手動登錄 再復制cookie到headers里面進行請求)
# 第二種,無驗證碼,最簡單的一種,直接在請求頭設置 登錄成功后的 Cookie,來標識 用戶身份 模擬登錄(需要瀏覽器段手動登錄 再復制cookie到headers里面進行請求)from urllib import request
# 董成鵬 主頁:'http://www.renren.com/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 = 'http://www.renren.com/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, random
from selenium import webdriver
import requests
from urllib import request
from lxml import etree
from PIL import Image# 加載驅動 從而 控制 瀏覽器
driver = webdriver.Edge(r'D:\Study\tools\webdriver\edge\msedgedriver.exe')
driver.get('http://www.renren.com/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 = 'http://icode.renren.com/getcode.do?t=web_login&rnd='+str(random.random())
request.urlretrieve(img_url,'renren_yzm.jpg') # 下載驗證碼 到本地
image = Image.open('renren_yzm.jpg') # 打開并且展示出來驗證碼
image.show()# 因為有的時候不需要驗證碼,所以當找不到驗證碼對應的標簽時 直接pass
try: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 = 'http://www.renren.com/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)
?
總結
以上是生活随笔為你收集整理的爬虫模拟登录人人网的三种方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 车辆管理系统-公务用车管理系统
- 下一篇: LM2596,LM2576,LM2575