最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python操控Chrome瀏覽器進(jìn)行網(wǎng)頁操作

 更新時間:2023年06月06日 08:33:41   作者:IT里的交易員  
這篇文章將為您展示如何通過Python控制瀏覽器實現(xiàn)網(wǎng)頁的打開、頁面的切換和關(guān)閉的基本操作,文中的示例代碼講解詳細(xì),感興趣的可以了解一下

前言

本文將為您展示如何通過Python控制瀏覽器實現(xiàn)網(wǎng)頁的打開、頁面的切換和關(guān)閉的基本操作,另外對于高階用戶,知道Chrome瀏覽器Cookie在哪里?可以方便方位Cookie從而實現(xiàn)帶登錄的更多操作。當(dāng)然,利用本文方法,你也可以提前登錄好,這樣就可以直接操作,而免去繁瑣的登錄環(huán)節(jié)。按步驟操作,小白也可以實現(xiàn)功能哦!

一、什么時候需要用Python控制瀏覽器

有些時候,我們需要操作瀏覽器完成訪問,比如通過網(wǎng)頁操作同花順模擬炒股,又比如做一些網(wǎng)頁端的測試等??傊看味家c擊很多次鼠標(biāo),太麻煩了。那么有沒有一種可以方法可以通過程序控制操作呢。當(dāng)然,有些人已經(jīng)想到了模擬鍵盤鼠標(biāo)的鍵盤精靈類軟件。這些當(dāng)然可以。但我們今天要講一種更為直接的辦法。

二、下載Chrome瀏覽器驅(qū)動文件

1. 安裝Chrome瀏覽器并查看版本

檢查自己的Chrome瀏覽器版本,后面下載驅(qū)動要看這個,否則不匹配也用不了。

2. 下載瀏覽器驅(qū)動文件

然后到下面的網(wǎng)頁里去找對應(yīng)的版本(主要的版本號對應(yīng)上即可)

https://registry.npmmirror.com/binary.html?path=chromedriver/

根據(jù)操作系統(tǒng)選擇需要下載的文件,Windows系統(tǒng)下載這個文件即可。

3. 解壓到python編譯器目錄(python.exe所在目錄)

將解壓出來的chromedriver.exe放到python編譯器目錄。如果使用Python虛擬環(huán)境,一樣放到虛擬環(huán)境目錄下。

三、Python控制Chrome瀏覽器(附源代碼)

1. 操作分兩步

(1)在CMD命令提示符中輸入(具體路徑看你的瀏覽器安裝位置):

cd C:\Program Files\Google\Chrome\Application\
chrome.exe --remote-debugging-port=9200 --user-data-dir="D:\tempfiles"

(2)在python中輸入,后面的端口號和前面的要保持一致,多個瀏覽器,就自己匹配好就行:

option.add_experimental_option("debuggerAddress", "127.0.0.1:9200")

通過以上2個步驟的配合,即可實現(xiàn)使用selenium對當(dāng)前打開的chrome界面進(jìn)行接管。

2. Python控制Chrome瀏覽器完整源代碼

這里使用selenium 來控制瀏覽器,為方便操作,將其打包成類。并且使用模糊搜索,可通過窗口titile操作頁面。個人獨創(chuàng),這里加雞腿啊!

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.chrome.options import Options
import time,os
import datetime
def fuzzy_find(x,_dict):
    # 對x通過鍵名模糊查找后返回鍵名,鍵值
    for key,value in _dict.items(): 
        if x in key:
            return key,value
    return x,None
# 定義一個字典,設(shè)置網(wǎng)頁標(biāo)題和url,后面操作會使用到    
url_dict = {
            '通達(dá)信問小達(dá)':'https://wenda.tdx.com.cn/site/wenda/index.html',
            '雪球':'https://xueqiu.com/',
            '百度':'http://www.baidu.com',
            }
class Chrome_browser():
    def __init__(self):
        print('start Chrome_browser')
        options = Options()
        options.add_experimental_option("debuggerAddress", "127.0.0.1:9200")
        self.browser = webdriver.Chrome(options=options)
        self.browser.implicitly_wait(8)  # 設(shè)置隱式時間等待
        self._max()
    def _max(self):
        self.browser.maximize_window()  # 最大化瀏覽器
    def _get_tab_dict(self):
        tab_dict = {}
        handles = self.browser.window_handles
        for handle in handles:  # 切換窗口
            # print ('switch to second window', handle)
            # self.browser.close() # 關(guān)閉第一個窗口
            self.browser.switch_to.window(handle)  # 切換到第二個窗口
            # print(self.browser.title)
            title = self.browser.title.replace(u'\xa0', '').split('-')[0] # 剔除標(biāo)題中的'-'字符
            tab_dict[title] = handle
        return tab_dict
    def open_tab(self,url_dict=url_dict):
        for k,v in url_dict.items():
            print('進(jìn)入'+k,datetime.datetime.now())
            self.browser.switch_to.new_window('tab')
            self.browser.get(v)
            self.browser.refresh()
            time.sleep(2)
    def _switch(self, name='', act=''):
        # 包含同時關(guān)閉的功能
        tab_dict = self._get_tab_dict()
        print('tab_dict',tab_dict)
        if name != '':
            key,value = fuzzy_find(name,tab_dict)
            # print('key,value',key,value)
            if value != None:
                self.browser.switch_to.window(value)
                if act == 'close':
                    self.browser.close()
                    return False
                return True
        else:
            return False
    def _close(self):
        # 關(guān)閉所有窗口,關(guān)閉單個由switch完成。
        tab_dict = self._get_tab_dict()
        for k,v in tab_dict.items():  # 切換窗口
            self.browser.switch_to.window(v)
            self.browser.close()
if __name__=='__main__':
    cb = Chrome_browser()
    cb.open_tab()
    cb._switch(name='通達(dá)信',act='') # 切換到title為name的窗口,act='close'則切換完同時關(guān)閉。
    cb._close() # 關(guān)閉所有窗口,關(guān)閉單個由switch完成。

四、Chrome瀏覽器Cookie在哪里(避坑指南)

以上操作,可以提前登錄好,并保存密碼,即可實現(xiàn)自動登錄。

但如果需要讀取Cookie完成更多高級操作,請注意以下路徑。網(wǎng)上之前的文章很多,但好些拿來不能用,關(guān)鍵是Cookie文件路徑變了:

96版本以前:./AppData\Local\Google\Chrome\User Data\default\Cookies

96版本之后:./AppData/Local/Google/Chrome/User Data/Default/Network/Cookies

完整路徑如(Administrator替換為自己的用戶名):

C:\Users\Administrator\AppData\Local\Google\Chrome\User Data\Default\Network\Cookies

到此這篇關(guān)于Python操控Chrome瀏覽器進(jìn)行網(wǎng)頁操作的文章就介紹到這了,更多相關(guān)Python Chrome網(wǎng)頁操作內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Pytest測試報告工具Allure用法介紹

    Pytest測試報告工具Allure用法介紹

    這篇文章介紹了Pytest測試報告工具Allure的用法,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • Python快速從視頻中提取視頻幀的方法詳解

    Python快速從視頻中提取視頻幀的方法詳解

    本文為大家介紹一種從視頻中抽取視頻幀的方法,由于單線程抽取視頻幀速度較慢,因此這里我們增加了多線程的方法,感興趣的小伙伴可以動手嘗試一下
    2022-07-07
  • Selenium webdriver添加cookie實現(xiàn)過程詳解

    Selenium webdriver添加cookie實現(xiàn)過程詳解

    這篇文章主要介紹了Selenium webdriver添加cookie實現(xiàn)過程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-08-08
  • python數(shù)字圖像處理之高級濾波代碼詳解

    python數(shù)字圖像處理之高級濾波代碼詳解

    這篇文章主要介紹了python數(shù)字圖像處理之高級濾波代碼詳解,介紹了許多對圖像處理的濾波方法,具有一定參考價值,需要的朋友可以了解下。
    2017-11-11
  • Python中異常捕獲與處理的方法總結(jié)

    Python中異常捕獲與處理的方法總結(jié)

    Python異常是在程序執(zhí)行時發(fā)生的錯誤,可能會導(dǎo)致程序終止運行。這篇文章主要為大家總結(jié)了Python中異常捕獲與處理的方法,需要的可以參考一下
    2023-04-04
  • python自動化測試之setUp與tearDown實例

    python自動化測試之setUp與tearDown實例

    這篇文章主要介紹了python自動化測試之setUp與tearDown實例,其中setUp()方法中進(jìn)行測試前的初始化工作,并在tearDown()方法中執(zhí)行測試后的清除工作,setUp()和tearDown()都是TestCase類中定義的方法,需要的朋友可以參考下
    2014-09-09
  • Python 非極大值抑制(NMS)的四種實現(xiàn)詳解

    Python 非極大值抑制(NMS)的四種實現(xiàn)詳解

    本文主要介紹了非極大值抑制(Non-Maximum Suppression,NMS)的四種實現(xiàn)方式,不同方法對NMS速度的影響各不相同,感興趣的小伙伴可以了解一下
    2021-11-11
  • python txt中的文件,逐行讀取并且每行賦值給變量問題

    python txt中的文件,逐行讀取并且每行賦值給變量問題

    這篇文章主要介紹了python txt中的文件,逐行讀取并且每行賦值給變量問題,具有很好的參考價值,希望對大家有所幫助。
    2023-02-02
  • NumPy對數(shù)組按索引查詢實戰(zhàn)方法總結(jié)

    NumPy對數(shù)組按索引查詢實戰(zhàn)方法總結(jié)

    數(shù)組的高級操作主要是組合數(shù)組,拆分?jǐn)?shù)組,tile數(shù)組和重組元素,下面這篇文章主要給大家介紹了關(guān)于NumPy對數(shù)組按索引查詢的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2022-08-08
  • OpenCV+Python3.5 簡易手勢識別的實現(xiàn)

    OpenCV+Python3.5 簡易手勢識別的實現(xiàn)

    這篇文章主要介紹了OpenCV+Python3.5 簡易手勢識別的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12

最新評論

明光市| 诸城市| 习水县| 诸城市| 神农架林区| 武冈市| 高要市| 莒南县| 桐城市| 霍城县| 开阳县| 赤峰市| 垫江县| 云梦县| 韩城市| 大竹县| 汽车| 宜宾市| 巴南区| 如东县| 定安县| 通渭县| 定远县| 漳浦县| 云阳县| 新和县| 宾川县| 临猗县| 浮山县| 榆社县| 乌拉特中旗| 郁南县| 荆门市| 遂昌县| 巧家县| 招远市| 赤峰市| 宣威市| 吉安县| 象州县| 福建省|