激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

腳本之家,腳本語言編程技術(shù)及教程分享平臺!
分類導(dǎo)航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務(wù)器之家 - 腳本之家 - Python - 利用selenium 3.7和python3添加cookie模擬登陸的實(shí)現(xiàn)

利用selenium 3.7和python3添加cookie模擬登陸的實(shí)現(xiàn)

2020-12-19 00:13地球守衛(wèi)者 Python

這篇文章主要給大家介紹了關(guān)于利用selenium 3.7和python3添加cookie模擬登陸的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用python具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。

前言

隨著Python3的普及,Selenium3也跟上了行程。而Selenium3最大的變化是去掉了Selenium RC,另外就是Webdriver從各自瀏覽器中脫離,必須單獨(dú)下載。本文就來介紹了關(guān)于selenium 3.7+python3實(shí)現(xiàn)添加cookie模擬登陸的相關(guān)內(nèi)容,分享出來供大家參考學(xué)習(xí),下面話不多說了,來一起看看詳細(xì)的介紹吧。

一、背景介紹

最近做一個爬蟲項(xiàng)目,用selenium調(diào)用瀏覽器去獲取渲染后的源碼,但是每次登陸都需要手機(jī)驗(yàn)證,這真的是頭痛啊,這種驗(yàn)證方式不要想著去破解,還是老老實(shí)實(shí)用手機(jī)收驗(yàn)證碼去吧!反正我是不知道這種驗(yàn)證方式還能破解!難道就沒有其他辦法了嗎?

有,那就是模擬登陸!這樣最起碼不用沒測試一次就登陸驗(yàn)證一次。

這里要說一下的就是,網(wǎng)上很多關(guān)于webdriver 添加cookie的教程,基本百分之80都是有問題的。反正我是找了N多的帖子都沒有一個是正確的。

二、  添加cookie方法:driver.add_cookie()

1.add_cookie(cookie_dict)方法里面參數(shù)是cookie_dict,說明里面參數(shù)是字典類型。

2.add_cookie源碼。

利用selenium 3.7和python3添加cookie模擬登陸的實(shí)現(xiàn)

從源碼中我們可以看出,add_cookie方法接受一個字典,字典中包含name,value,path,domain,secure,expiry,但是這個源碼容易誤導(dǎo)人,那就是cookie參數(shù)沒有給全。

網(wǎng)上很多教程給的代碼cookie參數(shù)是沒給夠的,根本就跑不起來。

3. add_cookie接收的字典格式。 

正確的格式:

?
1
2
3
4
5
6
7
8
9
10
11
cookie = {
 # "domain": ".58.com", #Firefox瀏覽器不能寫domain,如果寫了會報錯,谷歌需要寫否則也是報錯,這里就是一個坑。其他瀏覽器沒測試不知道情況。
 'name': name,
 'value': value,
 "expires": "",
 'path': '/',
 'httpOnly': False,
 'HostOnly': False,
 'Secure': False,
 
}
  • name:cookie的名稱
  • value:cookie對應(yīng)的值,動態(tài)生成的
  • domain:服務(wù)器域名
  • expiry:Cookie有效終止日期
  • path:Path屬性定義了Web服務(wù)器上哪些路徑下的頁面可獲取服務(wù)器設(shè)置的Cookie
  • httpOnly:防腳本攻擊
  • secure:在Cookie中標(biāo)記該變量,表明只有當(dāng)瀏覽器和Web Server之間的通信協(xié)議為加密認(rèn)證協(xié)議時

為什么要構(gòu)造成這樣子,其實(shí)我們看下瀏覽器保存的cookie格式就明白了。下圖就是谷歌瀏覽器的cookie 的截圖。

利用selenium 3.7和python3添加cookie模擬登陸的實(shí)現(xiàn)

三 ,我們舉個例子看下是否真的寫成功了:

利用selenium 3.7和python3添加cookie模擬登陸的實(shí)現(xiàn)

 第一次訪問的的時候去獲取名字叫hello的cookie 是沒有的,add_cookie后再去訪問,第二次訪問就拿到了hello。說明已經(jīng)寫進(jìn)去了。

 四、項(xiàng)目實(shí)戰(zhàn)。

能不能用?好不好用?怎么用?,用項(xiàng)目來說話,模擬登陸百度。!

目標(biāo):

  1.手動登錄一次后,只要在cookie 有效期內(nèi)無需重復(fù)登錄。

  2.訪問瀏覽記錄。

示例代碼

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#!coding=utf-8
import time
from selenium import webdriver
import pickle
 
class BaiduSpider(object):
 def __init__(self,username,password):
  self.username = username
  self.password = password
  self.driver = webdriver.Chrome()
  self.driver.get(url='http://www.baidu.com')
  self.set_cookie()
  self.is_login()
 def is_login(self):
  '''判斷當(dāng)前是否登陸'''
  self.driver.refresh()
  html = self.driver.page_source
  if html.find(self.username) == -1: #利用用戶名判斷是否登陸
   # 沒登錄 ,則手動登錄
   self.login()
  else:
   #已經(jīng)登錄 嘗試訪問搜索記錄,可以正常訪問
   self.driver.get(url='http://i.baidu.com/my/history')
   time.sleep(30) # 延時看效果
 
 def login(self):
  '''登陸'''
  time.sleep(60) #等待手動登錄
  self.driver.refresh()
  self.save_cookie()
 
 def save_cookie(self):
  '''保存cookie'''
  # 將cookie序列化保存下來
  pickle.dump(self.driver.get_cookies(), open("cookies.pkl", "wb"))
 
 def set_cookie(self):
  '''往瀏覽器添加cookie'''
  '''利用pickle序列化后的cookie'''
  try:
   cookies = pickle.load(open("cookies.pkl", "rb"))
   for cookie in cookies:
    cookie_dict = {
     "domain": ".baidu.com", # 火狐瀏覽器不用填寫,谷歌要需要
     'name': cookie.get('name'),
     'value': cookie.get('value'),
     "expires": "",
     'path': '/',
     'httpOnly': False,
     'HostOnly': False,
     'Secure': False}
    self.driver.add_cookie(cookie_dict)
  except Exception as e:
   print(e)
 
 
if __name__ == '__main__':
 
 BaiduSpider('usename','!!!!') # 你的百度賬號,密碼

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對服務(wù)器之家的支持。

原文鏈接:http://www.cnblogs.com/huangguifeng/p/7858619.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 毛片一级片 | 一区二区久久精品66国产精品 | 亚洲免费视频一区 | 91九色视频观看 | 毛片视频大全 | 国产精品亚洲三区 | 久久精品视频2 | 久久亚洲春色中文字幕久久 | 亚洲第九十九页 | 欧美亚洲一级 | 成人免费淫片 | 久久精品爱 | 国产精品久久久久久久久久10秀 | 成人颜色视频 | 99ri精品| 91九色视频在线观看 | 失禁高潮抽搐喷水h | 亚洲视频在线一区二区 | 亚洲精品在线观看免费 | 天天鲁在线视频免费观看 | 国产午夜探花 | 国产精品成人久久久久a级 男女无遮挡羞羞视频 | 午夜精品久久久久久毛片 | 免费久久久 | 91在线视频在线观看 | 91精品久久久久久久久网影视 | www.av520 | 九色中文 | 主人在调教室性调教女仆游戏 | 欧美特黄a | 国产免费成人 | 免费a级毛片大学生免费观看 | 久在线播放 | 91av资源在线 | 成人国产精品色哟哟 | 成人三区四区 | 久草在线最新 | 亚洲国产网站 | 狠狠干视频网站 | 国产人成免费爽爽爽视频 | 日韩在线播放一区二区 |