python寫點擊腳本實現selenium瀏覽器多開


1、查看chrome://version/瀏覽器版本,找到

個人資料路徑

C:\Users\qinzu\AppData\Local\Google\Chrome\User Data\Default

返回上一層找到User Data,復制兩份或者多份,前提先把瀏覽器賬號退出,清除緩存在復制,避免瀏覽器出錯。

2、如果多開需要復制幾份源碼,多開多少個就復制多少份,一份源代碼,一份定時程序,一份關鍵詞,一份域名。

 

 

3、每份源碼調用的關鍵詞,域名,User Data,chromedriver文件名稱不一樣,如果一樣會報錯。

 

 

 

python利用selenium程序調用本地瀏覽器多開

chrome的附加功能多一點,建議用chrome瀏覽器,因為這個瀏覽器能多開,問題也就解決了,也沒有必要再去找其他瀏覽器了。[這個方法可以比較方便爬取淘寶天貓等反爬手段比較厲害的網站]

想必各位朋友碰到過網站會檢測自動化程序,然后導致頁面不能載入,舉個栗子:

 

現在我在實現51job的HR端部分功能的自動化,
但是就是登錄不進去,而且還不能利用本地cookie登錄,
結果在console里面一查: window.navigator.webdriver 返回的是true,
這就是網站的一種檢測方式,識別到是自動化軟件

我百度了一下,有一種方案:
設置為開發者模式,具體操作為

 

self.options = webdriver.ChromeOptions()

# self.options.add_argument(generate_user_agent(device_type="desktop"))

# self.options.add_argument('lang=zh-CN,zh,zh-TW,en-US,en')

self.options.add_experimental_option('excludeSwitches', ['enable-automation'])

self.driver = webdriver.Chrome(options=self.options)
 

上面這個方案實施了后,頁面不能檢測到webdriver,但是依舊登錄不上,不知道哪里的問題,調用本地存的cookie也是不行,難道還是識別到了自動化軟件。

然后又找到了另外一種方案,調用本地的瀏覽器【推薦】。

這個方案是目前最佳的方案,因為可以不反復啟動瀏覽器,只要不退出,程序就可以直接利用打開的瀏覽器,但是這個方案有幾個需要注意的地方。

  • 需要定位到chrome.exe(就是安裝谷歌瀏覽器的那個開啟瀏覽器的那個文件,為了方便,可以添加進系統path(這個就不用介紹了,和你配置python的path一樣的),然后利用以下方式啟動瀏覽器)

 

 
        
chrome.exe --remote-debugging-port=9527 --user-data-dir="C:\selenium_xxx\AutomationProfile"上面的參數里面 9527 就是你要開辟的控制端口這里可以隨便改,但是不要用常用的那些端口比如(80,443,8080,27017....)然后后面的那個--user-data-dir="這里面的鏈接經過測試,可以這么寫C:\xxxxx\AutomationProfile" xxxx是你隨便寫的:>>>個人推薦:建議設置為selenium_text selenium_taobao selenium_kanzhun這樣的格式不同的就是可以開啟不同的賬號,如果都用這個位置,可能會發現哪怕用不同的端口,但是程序只會第一個調用的成功。所以:不同的端口做不同的事情,用不同的文件夾位置放賬戶配置信息。哪怕這次窗口關閉了,你下次調用這個窗口打開一樣的頁面,只要不到cookie失效時間,你登錄的信息都還是存在的。
python里面的鏈接方式:我是寫在類里面的__init__里面的,所以有個self
self.options = webdriver.ChromeOptions()self.options.add_argument("--no-sandbox") # 這里的信息是附加信息,可以不設置,但是推薦設置self.options.add_argument('--disable-gpu') # 這里的信息是附加信息,可以不設置,但是推薦設置self.options.add_experimental_option("debuggerAddress", "127.0.0.1:9527")self.driver = webdriver.Chrome(options=self.options)
 

公司要求三套賬號登錄,所以我就改了端口,還有后面的那個dir位置,就可以成功開啟三個本地調用的瀏覽器了。

當然還有另外的方式【不推薦】

下載不同版本的chrome,還要下載對應版本的chromedirver略顯麻煩。

 


 

順道一提:建議各位學習各個程序功能的小伙伴,為了程序的可拓展性,程序里面的可能變的參數,建議單獨設置一個配置文件,然后把那些信息放配置文件里面,這樣復制文件也很方便,只要改配置文件信息就好了。比如我上面的那個端口信息,我是設置到配置文件里面,因為不同的程序會開不同的窗口,python3.6+ 可以利用f-string 很方便的,我喜歡寫個python_config.py的文件放配置信息,我一般放在該項目下單獨創建的一個helper的目錄下面 所以可以這樣子寫 : 在文件上面導入模塊的時候寫

 

 
        
from helper import python_config
這樣子后面就可以這樣子用這個自定義的配置文件了。
options.add_experimental_option("debuggerAddress", f"127.0.0.1:{pytho
n_config.CHROME_PORT}")

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM