日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

selenium+python配置chrome瀏覽器的選項的實現

瀏覽:125日期:2022-08-01 18:54:36

1. 背景

在使用selenium瀏覽器渲染技術,爬取網站信息時,默認情況下就是一個普通的純凈的chrome瀏覽器,而我們平時在使用瀏覽器時,經常就添加一些插件,擴展,代理之類的應用。相對應的,當我們用chrome瀏覽器爬取網站時,可能需要對這個chrome做一些特殊的配置,以滿足爬蟲的行為。

常用的行為有:

禁止圖片和視頻的加載:提升網頁加載速度。 添加代理:用于翻墻訪問某些頁面,或者應對IP訪問頻率限制的反爬技術。 使用移動頭:訪問移動端的站點,一般這種站點的反爬技術比較薄弱。 添加擴展:像正常使用瀏覽器一樣的功能。 設置編碼:應對中文站,防止亂碼。 阻止JavaScript執行。 ………

2. 環境

python 3.6.1 系統:win7 IDE:pycharm 安裝過chrome瀏覽器 配置好chromedriver selenium 3.7.0

3. chromeOptions

chromeOptions 是一個配置 chrome 啟動是屬性的類。通過這個類,我們可以為chrome配置如下參數(這個部分可以通過selenium源碼看到):

設置 chrome 二進制文件位置 (binary_location) 添加啟動參數 (add_argument) 添加擴展應用 (add_extension, add_encoded_extension) 添加實驗性質的設置參數 (add_experimental_option) 設置調試器地址 (debugger_address)

源代碼:

# .Libsite-packagesseleniumwebdriverchromeoptions.pyclass Options(object): def __init__(self): # 設置 chrome 二進制文件位置 self._binary_location = ’’ # 添加啟動參數 self._arguments = [] # 添加擴展應用 self._extension_files = [] self._extensions = [] # 添加實驗性質的設置參數 self._experimental_options = {} # 設置調試器地址 self._debugger_address = None

使用案例:

# 設置默認編碼為 utf-8,也就是中文from selenium import webdriveroptions = webdriver.ChromeOptions()options.add_argument(’lang=zh_CN.UTF-8’)driver = webdriver.Chrome(chrome_options = options)

4. 常用配置官方網站參考:https://sites.google.com/a/chromium.org/chromedriver/capabilities

4.1. 設置編碼格式

# 設置默認編碼為 utf-8,也就是中文from selenium import webdriveroptions = webdriver.ChromeOptions()options.add_argument(’lang=zh_CN.UTF-8’)driver = webdriver.Chrome(chrome_options = options)

4.2. 模擬移動設備

移動設備user-agent表格:http://www.fynas.com/ua

因為移動版網站的反爬蟲的能力比較弱

# 通過設置user-agent,用來模擬移動設備# 比如模擬 android QQ瀏覽器options.add_argument(’user-agent='MQQBrowser/26 Mozilla/5.0 (Linux; U; Android 2.3.7; zh-cn; MB200 Build/GRJ22; CyanogenMod-7) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'’)# 模擬iPhone 6options.add_argument(’user-agent='Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1'’)

4.3. 禁止圖片加載

不加載圖片的情況下,可以提升爬取速度。

# 禁止圖片的加載from selenium import webdriverchrome_options = webdriver.ChromeOptions()prefs = {'profile.managed_default_content_settings.images': 2}chrome_options.add_experimental_option('prefs', prefs)# 啟動瀏覽器,并設置好waitbrowser = webdriver.Chrome(chrome_options=chrome_options)browser.set_window_size(configure.windowHeight, configure.windowWidth) # 根據桌面分辨率來定,主要是為了抓到驗證碼的截屏wait = WebDriverWait(browser, timeout = configure.timeoutMain)

4.4. 添加代理

為selenium爬蟲添加代理,這個地方尤其需要注意的是,在選擇代理時,盡量選擇靜態IP,才能提升爬取的穩定性。因為如果選擇selenium來做爬蟲,說明網站的反爬能力比較高(要不然直接上scrapy了),對網頁之間的連貫性,cookies,用戶狀態等有較高的監測。如果使用動態匿名IP,每個IP的存活時間是很短的(1~3分鐘)。

from selenium import webdriver# 靜態IP:102.23.1.105:2005# 阿布云動態IP:http://D37EPSERV96VT4W2:CERU56DAEB345HU90@proxy.abuyun.com:9020PROXY = 'proxy_host:proxy:port'options = webdriver.ChromeOptions()desired_capabilities = options.to_capabilities()desired_capabilities[’proxy’] = { 'httpProxy': PROXY, 'ftpProxy': PROXY, 'sslProxy': PROXY, 'noProxy': None, 'proxyType': 'MANUAL', 'class': 'org.openqa.selenium.Proxy', 'autodetect': False}driver = webdriver.Chrome(desired_capabilities = desired_capabilities)

4.5. 瀏覽器選項設置

selenium一般打開的是不帶擴展的純凈的瀏覽器,但是有時候我們想對瀏覽器進行一些設置,比如 設置flash選項的默認值為全局始終允許,清除cookies,清除緩存 之類。

想要實現這個目的,有一種思路,下面以chrome瀏覽器為例:

在selenium爬蟲啟動時,首先開一個窗口,在地址欄鍵入:chrome://settings/content 或 chrome://settings/privacy,然后由程序,像操作普通網頁一樣,進行設置,保存。

selenium+python配置chrome瀏覽器的選項的實現

4.6.添加瀏覽器擴展應用

selenium一般打開的是不帶擴展的純凈的瀏覽器,但是有時候我們爬取數據時需要借助一些插件,比如解析類xpath helper,翻譯類,獲取額外信息(銷量)等。那我們怎么在啟動chromedriver時,帶上一些我們需要的插件呢?

下面以在chrome中加載Xpath Helper插件為例:

4.6.1. 下載相應的插件Xpath Helper下載地址:https://www.jb51.net/softs/673040.html如下,是一個 以 crx 為后綴的文件:

selenium+python配置chrome瀏覽器的選項的實現4.6.2.

將插件路徑填入代碼中

# 添加xpath helper應用from selenium import webdriverchrome_options = webdriver.ChromeOptions()# 設置好應用擴展extension_path = ’D:/extension/XPath-Helper_v2.0.2.crx’chrome_options.add_extension(extension_path)# 啟動瀏覽器,并設置好waitbrowser = webdriver.Chrome(chrome_options=chrome_options)

4.6.3. 結果展示

selenium+python配置chrome瀏覽器的選項的實現

4.6.4. 注意事項

第一,為了提高爬取速度,盡可能的少加載插件。

第二,有一種方案會加載用戶對chrome瀏覽器的所有配置信息,但是測試并無法使用,如下:

首先進入C:Users(用戶)你的電腦名稱AppDataLocalGoogleChromeUser DataDefaultExtensions,點開Extensions,里面的文件夾就是安裝過的擴展,(記得先把電腦隱藏文件夾顯示出來,否則找不到) 但是名字是一堆我看不懂的無序的英文字母,我的辦法是一個一個點開找到對應的插件版本號,版本號在chrome Extensions選項里找然后打包你需要的插件:打開chrome的設置,在里面點開擴展程序,選中開發者模式,你安裝的插件的下面會出現一個ID,這個ID對應的就是你要打包的插件,然后打包擴展程序,找到對應的文件夾(或者你也可以把這個文件夾復制到電腦任意地方)下面的版本號的文件夾,也就是ID名文件夾內部的那個文件夾,然后點擊打包擴展程序,就可以了,會相應的在版本號的同一級地方出現后綴名是crx和pem的文件,這個crx的文件就是我們需要的(不過按照這種方式,在我的本地目錄是找不到這樣的crx文件,需要單獨下載…)。準備工作完成,看代碼:

# 第一種方式# chrome瀏覽器的擴展程序都在:C:UsersAdministratorAppDataLocalGoogleChromeUser DataProfile 2Extensions下chrome_options.add_argument('user-data-dir=C:/Users/Administrator/AppData/Local/Google/Chrome/User Data')

# 加載所有Chrome配置, 用Chrome地址欄輸入chrome://version/,查看自己的“個人資料路徑”,然后在瀏覽器啟動時,調用這個配置文件,代碼如下:from selenium import webdriveroption = webdriver.ChromeOptions()option.add_argument(’--user-data-dir=C:UsersAdministratorAppDataLocalGoogleChromeUser Data’) #設置成用戶自己的數據目錄driver = webdriver.Chrome(chrome_options=option)

# 出現錯誤結果第一,所有瀏覽器窗口,包括自己打開的都會被控制住。第二,其他動作不起作用,而且會crash。Traceback (most recent call last): File 'E:/PyCharmCode/taobaoProductSelenium/taobaoSelenium.py', line 40, in <module> # 啟動瀏覽器,并設置好wait File 'E:Minicondalibsite-packagesseleniumwebdriverchromewebdriver.py', line 69, in __init__ desired_capabilities=desired_capabilities) File 'E:Minicondalibsite-packagesseleniumwebdriverremotewebdriver.py', line 151, in __init__ self.start_session(desired_capabilities, browser_profile) File 'E:Minicondalibsite-packagesseleniumwebdriverremotewebdriver.py', line 240, in start_session response = self.execute(Command.NEW_SESSION, parameters) File 'E:Minicondalibsite-packagesseleniumwebdriverremotewebdriver.py', line 308, in execute self.error_handler.check_response(response) File 'E:Minicondalibsite-packagesseleniumwebdriverremoteerrorhandler.py', line 194, in check_response raise exception_class(message, screen, stacktrace)selenium.common.exceptions.WebDriverException: Message: unknown error: Chrome failed to start: crashed (Driver info: chromedriver=2.32.498550 (9dec58e66c31bcc53a9ce3c7226f0c1c5810906a),platform=Windows NT 6.1.7601 SP1 x86_64)

4.7. 登錄時關閉彈出的密碼保存提示框

最近在使用chrome登錄網站的時候總有密碼保存提示框,并不是所有的都會有密碼保存提示框,其實只需要設置啟動chrome的相關參數就可以避免這種問題。

from time import sleep from selenium import webdriver from selenium.webdriver.common.by import Byoptions = webdriver.ChromeOptions() prefs = {} # 設置這兩個參數就可以避免密碼提示框的彈出prefs[“credentials_enable_service”] = False prefs[“profile.password_manager_enabled”] = False options.add_experimental_option(“prefs”, prefs) browser = webdriver.Chrome(chrome_options=options) browser.get(’https://www.baidu.com/’)

5. 其他參數

參考文章:https://www.jb51.net/article/182967.htm

5.1 chrome地址欄命令在Chrome的瀏覽器地址欄中輸入以下命令,就會返回相應的結果。這些命令包括查看內存狀態,瀏覽器狀態,網絡狀態,DNS服務器狀態,插件緩存等等。但是需要注意的是這些命令會不停的變動,所以不一定都是好用的。about:version - 顯示當前版本about:memory - 顯示本機瀏覽器內存使用狀況about:plugins - 顯示已安裝插件about:histograms - 顯示歷史記錄about:dns - 顯示DNS狀態about:cache - 顯示緩存頁面about:gpu -是否有硬件加速about:flags -開啟一些插件 //使用后彈出這么些東西:“請小心,這些實驗可能有風險”,不知會不會搞亂俺的配置?。hrome://extensions/ - 查看已經安裝的擴展

5.2. chrome實用參數

其他的一些關于Chrome的實用參數及簡要的中文說明,使用方法同上4.5.4,當然也可以在shell中使用。?user-data-dir=”[PATH]” 指定用戶文件夾User Data路徑,可以把書簽這樣的用戶數據保存在系統分區以外的分區。?disk-cache-dir=”[PATH]“ 指定緩存Cache路徑?disk-cache-size= 指定Cache大小,單位Byte?first run 重置到初始狀態,第一次運行?incognito 隱身模式啟動?disable-javascript 禁用Javascript--omnibox-popup-count=“num” 將地址欄彈出的提示菜單數量改為num個。我都改為15個了。--user-agent=“xxxxxxxx” 修改HTTP請求頭部的Agent字符串,可以通過about:version頁面查看修改效果--disable-plugins 禁止加載所有插件,可以增加速度??梢酝ㄟ^about:plugins頁面查看效果--disable-javascript 禁用JavaScript,如果覺得速度慢在加上這個--disable-java 禁用java--start-maximized 啟動就最大化--no-sandbox 取消沙盒模式--single-process 單進程運行--process-per-tab 每個標簽使用單獨進程--process-per-site 每個站點使用單獨進程--in-process-plugins 插件不啟用單獨進程--disable-popup-blocking 禁用彈出攔截--disable-plugins 禁用插件--disable-images 禁用圖像--incognito 啟動進入隱身模式--enable-udd-profiles 啟用賬戶切換菜單--proxy-pac-url 使用pac代理 [via 1/2]--lang=zh-CN 設置語言為簡體中文--disk-cache-dir 自定義緩存目錄--disk-cache-size 自定義緩存最大值(單位byte)--media-cache-size 自定義多媒體緩存最大值(單位byte)--bookmark-menu 在工具 欄增加一個書簽按鈕--enable-sync 啟用書簽同步?single-process 單進程運行Google Chrome?start-maximized 啟動Google Chrome就最大化?disable-java 禁止Java?no-sandbox 非沙盒模式運行

到此這篇關于selenium+python配置chrome瀏覽器的選項的實現的文章就介紹到這了,更多相關selenium python配置chrome內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Python 編程
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
久久免费视频66| 国产v日韩v欧美v| 美女少妇全过程你懂的久久| 成年男女免费视频网站不卡| 人人爱人人干婷婷丁香亚洲| 欧美久久久网站| 亚洲毛片在线| 国产精品第十页| 99精品一区| 日本午夜精品| 亚洲v天堂v手机在线| 久久精品午夜| 麻豆国产精品视频| 久久精品国产99国产| 日韩激情av在线| 欧美日韩亚洲一区二区三区在线| 日韩精品亚洲专区在线观看| 国产亚洲一区| 日韩精品1区2区3区| 国产伊人久久| 欧美69视频| 国产精一区二区| 日韩精品中文字幕第1页| 在线日韩欧美| 国产亚洲精品久久久久婷婷瑜伽| 一区二区91| 老牛国内精品亚洲成av人片 | 日韩欧美二区| 国产日韩欧美三级| 在线视频亚洲欧美中文| 国产96在线亚洲| 精品网站999| 国产91精品对白在线播放| 久久国产三级| 久久青青视频| 精品美女在线视频| 亚洲字幕久久| 夜夜嗨一区二区| 亚洲欧洲一区| 国产精品视频一区二区三区四蜜臂 | 国产欧美自拍| 日韩毛片网站| 久久久久久一区二区| 精精国产xxxx视频在线野外| 日韩精品免费视频一区二区三区 | 偷拍亚洲精品| 成人在线视频免费看| 婷婷精品在线| 日本а中文在线天堂| 在线天堂资源www在线污| 制服诱惑一区二区| 午夜亚洲一区| 日本精品久久| 91精品韩国| 九九精品调教| 精品一区二区三区免费看| 国产欧美三级| 欧美91在线| 欧美激情99| 一区二区三区国产盗摄| 在线手机中文字幕| 中文在线中文资源| 亚洲综合电影| 天堂中文av在线资源库| 国产精品中文字幕亚洲欧美| 国产一区欧美| 精品一区二区三区免费看 | 亚洲精品欧美| 91精品国产自产在线丝袜啪| 国产视频网站一区二区三区| 国产情侣久久| 理论片午夜视频在线观看| 亚洲激情社区| 国产精品免费精品自在线观看| 国产美女高潮在线观看| 婷婷久久免费视频| 日韩一区二区在线免费| 日韩高清在线不卡| 国产精品亚洲成在人线| 一区二区国产精品| 国产私拍福利精品视频二区| 亚洲性视频h| 欧美日韩中出| 啪啪国产精品| 欧美日韩免费看片| 精品一区二区三区的国产在线观看 | 国产精品99久久免费| 美女久久99| 国产va免费精品观看精品视频| 国精品一区二区三区| 国产欧美日韩视频在线| 国产精品毛片久久久| 六月婷婷一区| 日韩精品第一| 日韩影院精彩在线| 久久精品国产www456c0m| 欧美天堂视频| 久久久国产精品入口麻豆| 国产精品66| 亚洲精品福利| 亚洲成人精品| 欧美福利专区| 日本不良网站在线观看| av免费不卡国产观看| 综合精品一区| 免费成人性网站| 久久久免费人体| 欧美日韩亚洲一区三区| 亚洲自拍另类| 综合国产视频| 一区二区不卡| 亚洲视频www| 亚洲精品国产精品粉嫩| 日韩欧美精品一区| 日韩精品a在线观看91| 国产精品亚洲二区| 免费国产自久久久久三四区久久 | 亚洲天堂免费| bbw在线视频| 国产精品综合| 精品久久美女| 美女视频黄 久久| 91看片一区| 精品国产网站| 国产在线不卡| 亚洲精品888| 在线精品一区| 欧美一区91| 波多视频一区| 欧美精品不卡| 国产高清视频一区二区| 日韩精品久久久久久久电影99爱| 国产一区日韩一区| 亚洲综合国产| 欧美香蕉视频| 亚洲精品免费观看| 日韩成人亚洲| 久久国产欧美日韩精品| 国产精品tv| 免费在线小视频| 日韩综合小视频| 国产综合色区在线观看| 蜜臀久久99精品久久一区二区| 久久亚洲色图| 美国三级日本三级久久99 | 性欧美xxxx免费岛国不卡电影| 丝袜诱惑一区二区| 欧美资源在线| 日韩高清在线不卡| 国产精品传媒麻豆hd| 国产精品欧美一区二区三区不卡| 国产精品久久乐| 欧美日韩一区二区三区不卡视频| 日韩在线看片| 久久国产88| 日韩一区二区三区精品 | 国产夫妻在线| 亚洲精品伊人| 麻豆91精品| 伊伊综合在线| 久久亚洲精品中文字幕| 91精品麻豆| 精品国产一区二| 国产欧美日韩一级| 欧美一区二区三区久久| 中文字幕一区二区三区四区久久 | 亚洲男女av一区二区| 国产精品一在线观看| 老司机精品久久| www.九色在线| 亚洲人成亚洲精品| 国产传媒在线观看| 日韩黄色大片| 综合国产视频| 日韩亚洲精品在线观看| 国产亚洲精品美女久久 | 最新亚洲国产| 国产精品日韩| 久久久噜噜噜| 精品五月天堂| 91国语精品自产拍| 亚洲综合电影| 激情综合婷婷| 欧美激情精品| 久久亚洲国产精品一区二区| 91高清一区| 欧美一区三区| 日韩精品中文字幕一区二区| 国内精品美女在线观看| 国产精品社区| 日韩免费视频| 免费欧美一区| 亚洲成人不卡| 欧美精品福利| 在线一区电影| 国产精品xxx在线观看| 视频一区视频二区在线观看| 蜜桃视频在线观看一区二区| 在线日韩电影| 久久99伊人|