国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

python + selenium + chrome headless 的一些備忘

Elle / 1574人閱讀

摘要:使用在中進行了一項使用瀏覽器的工作在此記錄下遇到的問題以及解決方法入門參考中如何安裝瀏覽器以及參考啟動瀏覽器時常用的屬性指定瀏覽器分辨率谷歌文檔提到需要加上這個屬性來規避隱藏滾動條應對一些特殊頁面不加載圖片提升速度

使用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") #谷歌文檔提到需要加上這個屬性來規避bug
chrome_options.add_argument("--hide-scrollbars") #隱藏滾動條, 應對一些特殊頁面
chrome_options.add_argument("blink-settings=imagesEnabled=false") #不加載圖片, 提升速度
chrome_options.add_argument("--headless") #瀏覽器不提供可視化頁面. linux下如果系統不支持可視化不加這條會啟動失敗
chrome_options.binary_location = r"/Applications/Google Chrome Canary.app/Contents/MacOS/Google Chrome Canary" #手動指定使用的瀏覽器位置
selenium如何連接到已經開啟的瀏覽器?

需要在打開瀏覽器后, 獲取瀏覽器的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() #這時會打開一個全新的瀏覽器對象, 先把新的關掉
opener.session_id = session_id #session_id為上面的session_id

之后對opener的任何操作都會反映在之前的瀏覽器上.

selenium 的 desired_capabilities 如何傳遞--headless這樣的瀏覽器參數
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
capabilities = DesiredCapabilities.CHROME
capabilities.setdefault("chromeOptions", {"args":["--headless", "--disable-gpu"]})
selenium 使用 crontab等環境啟動時提示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) #需要先訪問該網站產生cookies后再進行覆寫

selenium 等待頁面所有異步函數完成

opener.implicitly_wait(30) #30是最長等待時間

selenium 打開新標簽頁

偏向使用js函數來執行

opener.execute_script("""window.open("http://baidu.com","_blank");""") 
selenium 獲得頁面的網絡請求信息

有些時候頁面在你點擊后會異步進行請求, 完成一些操作, 這時可能就會生成輸出數據的url, 只要抓到這個url就可以跳過token驗證等安全監測, 直接獲得數據.

script =  "var performance = window.performance || window.mozPerformance || window.msPerformance || window.webkitPerformance || {}; var network = performance.getEntries() || {}; return network;"
performances = opener.execute_script(script)

script里是js代碼, 一般用來進行性能檢查, 網絡請求狀況, 使用selenium執行這段js就可以獲得所有的請求信息.

おわり.

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/41342.html

相關文章

  • headless模式下運行selenium

    摘要:而在不久前宣布支持模式而后跟隨的新聞再次勾起我無盡的回憶。那么我們就來談談在和瀏覽器不原生支持模式下如何使用來實現模式進行動態數據的抓取。比較常見的例子在中進行轉發。下面我們進行測試發現其可以正常的運行。 原文地址: http://52sox.com/python-use-h... 在Python中進行瀏覽器測試時,一般我們會選擇selenium這樣的庫來簡化我們工作量。而有些時候,為...

    MoAir 評論0 收藏0
  • 使用瀏覽器HEADLESS模式進行自動化測試

    摘要:了解模式指的是不需要用戶界面的瀏覽器,這種瀏覽器在自動化測試和爬蟲領域有著廣泛的應用。實踐使用瀏覽器的模式進行自動化測試,你需要先滿足以下前提運行環境或者或者最新版已加入萬事俱備,廢話不多說我們直接上演示代碼。 了解HEADLESS模式 HEADLESS BROWSER 指的是不需要用戶界面的瀏覽器,這種瀏覽器在自動化測試和爬蟲領域有著廣泛的應用。 例如你想在網頁上運行一些測試,從網頁...

    lanffy 評論0 收藏0
  • Scrapy+Chromium+代理+selenium

    摘要:通常的解決辦法是通過抓包,然后查看信息,接著捕獲返回的消息。為了減少因為安裝環境所帶來的煩惱。代理因為我們已經用替換了。我們需要直接用來處理代理問題。根據上面這段代碼,我們也不難猜出解決代理的方法了。 上周說到scrapy的基本入門。這周來寫寫其中遇到的代理和js渲染的坑。 js渲染 js是爬蟲中畢竟麻煩處理的一塊。通常的解決辦法是通過抓包,然后查看request信息,接著捕獲ajax...

    Pocher 評論0 收藏0
  • 使用 headless chrome進行測試

    注:文章聚合了現在 headless chrome 介紹和使用方式 包含了三個部分 chrome 在 mac 上的安裝和簡單使用(來自官方) 利用 selenium 的 webdrive 驅動 headless chrome(自己添加) 利用Xvfb方式實現偽 headless chrome 概念 Headless模式解決了什么問題: 自動化工具例如 selenium 利用有頭瀏覽器進行測試...

    ephererid 評論0 收藏0
  • selenium+chrome headless完成自動百度八斗平臺錄入問題(python版本為2

    摘要:對應的的放置目錄打開開始登錄輸入框你的賬號你的密碼登錄確認睡眠秒截圖驗證碼寫上你自己的圖片地址請輸入看到的驗證碼截圖查看步驟寫上你自己的圖片地址輸入任意值繼續登錄之后跳轉跳轉開始動態令牌請輸入動態 # -*- coding: utf-8 -*- import sys reload(sys) sys.setdefaultencoding(utf-8) import os from ...

    Eminjannn 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<