摘要:使用在中進行了一項使用瀏覽器的工作在此記錄下遇到的問題以及解決方法入門參考中如何安裝瀏覽器以及參考啟動瀏覽器時常用的屬性指定瀏覽器分辨率谷歌文檔提到需要加上這個屬性來規(guī)避隱藏滾動條應(yīng)對一些特殊頁面不加載圖片提升速度
使用python3.6在Ubuntu中進行了一項使用Chrome headless瀏覽器的工作, 在此記錄下遇到的問題以及解決方法.入門?
參考 unning-selenium-with-headless-chrome
Ubuntu中如何安裝chrome瀏覽器, 以及chromedriver?參考 Installing ChromeDriver on Ubuntu
selenium啟動瀏覽器時常用的屬性from selenium.webdriver.chrome.options import Options chrome_options = Options() chrome_options.add_argument("window-size=1920x3000") #指定瀏覽器分辨率 chrome_options.add_argument("--disable-gpu") #谷歌文檔提到需要加上這個屬性來規(guī)避bug chrome_options.add_argument("--hide-scrollbars") #隱藏滾動條, 應(yīng)對一些特殊頁面 chrome_options.add_argument("blink-settings=imagesEnabled=false") #不加載圖片, 提升速度 chrome_options.add_argument("--headless") #瀏覽器不提供可視化頁面. linux下如果系統(tǒng)不支持可視化不加這條會啟動失敗 chrome_options.binary_location = r"/Applications/Google Chrome Canary.app/Contents/MacOS/Google Chrome Canary" #手動指定使用的瀏覽器位置selenium如何連接到已經(jīng)開啟的瀏覽器?
需要在打開瀏覽器后, 獲取瀏覽器的command_executor url, 以及session_id
opener.command_executor._url, opener.session_id #opener為webdriver對象
之后通過remote方式鏈接
from selenium import webdriver opener = webdriver.Remote(command_executor=_url,desired_capabilities={}) #_url為上面的_url opener.close() #這時會打開一個全新的瀏覽器對象, 先把新的關(guān)掉 opener.session_id = session_id #session_id為上面的session_id
之后對opener的任何操作都會反映在之前的瀏覽器上.
selenium 的 desired_capabilities 如何傳遞--headless這樣的瀏覽器參數(shù)from selenium.webdriver.common.desired_capabilities import DesiredCapabilities capabilities = DesiredCapabilities.CHROME capabilities.setdefault("chromeOptions", {"args":["--headless", "--disable-gpu"]})selenium 使用 crontab等環(huán)境啟動時提示chromedriver not in PATH
初始化的時候, 傳入chromedriver絕對路徑
opener = webdriver.Chrome(r"/usr/local/bin/chromedriver", chrome_options=chrome_options)selenium使用cookies
獲得cookies
opener.get_cookies()
寫入cookies
opener.add_cookie(cookie) #需要先訪問該網(wǎng)站產(chǎn)生cookies后再進行覆寫
opener.implicitly_wait(30) #30是最長等待時間
selenium 打開新標簽頁偏向使用js函數(shù)來執(zhí)行
opener.execute_script("""window.open("http://baidu.com","_blank");""")selenium 獲得頁面的網(wǎng)絡(luò)請求信息
有些時候頁面在你點擊后會異步進行請求, 完成一些操作, 這時可能就會生成輸出數(shù)據(jù)的url, 只要抓到這個url就可以跳過token驗證等安全監(jiān)測, 直接獲得數(shù)據(jù).
script = "var performance = window.performance || window.mozPerformance || window.msPerformance || window.webkitPerformance || {}; var network = performance.getEntries() || {}; return network;" performances = opener.execute_script(script)
script里是js代碼, 一般用來進行性能檢查, 網(wǎng)絡(luò)請求狀況, 使用selenium執(zhí)行這段js就可以獲得所有的請求信息.
おわり.
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/41342.html
摘要:而在不久前宣布支持模式而后跟隨的新聞再次勾起我無盡的回憶。那么我們就來談?wù)勗诤蜑g覽器不原生支持模式下如何使用來實現(xiàn)模式進行動態(tài)數(shù)據(jù)的抓取。比較常見的例子在中進行轉(zhuǎn)發(fā)。下面我們進行測試發(fā)現(xiàn)其可以正常的運行。 原文地址: http://52sox.com/python-use-h... 在Python中進行瀏覽器測試時,一般我們會選擇selenium這樣的庫來簡化我們工作量。而有些時候,為...
摘要:了解模式指的是不需要用戶界面的瀏覽器,這種瀏覽器在自動化測試和爬蟲領(lǐng)域有著廣泛的應(yīng)用。實踐使用瀏覽器的模式進行自動化測試,你需要先滿足以下前提運行環(huán)境或者或者最新版已加入萬事俱備,廢話不多說我們直接上演示代碼。 了解HEADLESS模式 HEADLESS BROWSER 指的是不需要用戶界面的瀏覽器,這種瀏覽器在自動化測試和爬蟲領(lǐng)域有著廣泛的應(yīng)用。 例如你想在網(wǎng)頁上運行一些測試,從網(wǎng)頁...
摘要:通常的解決辦法是通過抓包,然后查看信息,接著捕獲返回的消息。為了減少因為安裝環(huán)境所帶來的煩惱。代理因為我們已經(jīng)用替換了。我們需要直接用來處理代理問題。根據(jù)上面這段代碼,我們也不難猜出解決代理的方法了。 上周說到scrapy的基本入門。這周來寫寫其中遇到的代理和js渲染的坑。 js渲染 js是爬蟲中畢竟麻煩處理的一塊。通常的解決辦法是通過抓包,然后查看request信息,接著捕獲ajax...
注:文章聚合了現(xiàn)在 headless chrome 介紹和使用方式 包含了三個部分 chrome 在 mac 上的安裝和簡單使用(來自官方) 利用 selenium 的 webdrive 驅(qū)動 headless chrome(自己添加) 利用Xvfb方式實現(xiàn)偽 headless chrome 概念 Headless模式解決了什么問題: 自動化工具例如 selenium 利用有頭瀏覽器進行測試...
摘要:對應(yīng)的的放置目錄打開開始登錄輸入框你的賬號你的密碼登錄確認睡眠秒截圖驗證碼寫上你自己的圖片地址請輸入看到的驗證碼截圖查看步驟寫上你自己的圖片地址輸入任意值繼續(xù)登錄之后跳轉(zhuǎn)跳轉(zhuǎn)開始動態(tài)令牌請輸入動態(tài) # -*- coding: utf-8 -*- import sys reload(sys) sys.setdefaultencoding(utf-8) import os from ...
閱讀 1352·2021-10-08 10:04
閱讀 1983·2021-09-04 16:40
閱讀 2598·2019-08-30 13:21
閱讀 2349·2019-08-29 15:10
閱讀 2920·2019-08-29 12:35
閱讀 1253·2019-08-26 17:41
閱讀 3125·2019-08-26 17:03
閱讀 1235·2019-08-26 12:01