中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

網(wǎng)站換了域名還被k站不安仁網(wǎng)絡(luò)推廣

網(wǎng)站換了域名還被k站不,安仁網(wǎng)絡(luò)推廣,淮安汽車網(wǎng)站制作,英雄聯(lián)盟更新公告最新概述 前面我們已經(jīng)大致了解了selenium的用法,DerssionPage同selenium一樣,也是一個基于Python的網(wǎng)頁自動化工具。 DrissionPage既可以實現(xiàn)網(wǎng)頁的自動化操作,也能夠?qū)崿F(xiàn)收發(fā)數(shù)據(jù)包,也可以把兩者的功能合二為一。 DressionPage的…

概述

前面我們已經(jīng)大致了解了selenium的用法,DerssionPage同selenium一樣,也是一個基于Python的網(wǎng)頁自動化工具。

DrissionPage既可以實現(xiàn)網(wǎng)頁的自動化操作,也能夠?qū)崿F(xiàn)收發(fā)數(shù)據(jù)包,也可以把兩者的功能合二為一。

DressionPage的有點在于既可以兼顧selenium自動操作網(wǎng)頁的便捷性,還不需要像selenium那樣配置chromedriver,也不需要過一段時間更新chrome瀏覽器和chromedriver。同時DrissionPage可以同requests一樣高效,不需要擔(dān)心js逆向等問題。

簡單的來說,DressionPage能夠高效的實現(xiàn)所見即所爬,語法簡潔優(yōu)雅,代碼量少,對新手友好。DrissionPage最大的優(yōu)勢在于它是最新新出的網(wǎng)頁自動化測試工具,現(xiàn)階段針對他的反爬蟲措施幾乎沒有。

安裝DrissionPage

和安裝requests模塊一樣,在pycharm終端中輸入如下的pip命令,在網(wǎng)絡(luò)正常的情況下就可以正常使用該模塊的相關(guān)功能。

pip install DrissionPage

如果想要升級到最新的版本,執(zhí)行如下的命令:

pip install DrissionPage --upgrade

如果想要安裝指定的版本,執(zhí)行如下的命令:

pip install DrissionPage==4.0.0b17

我這里安裝的是當(dāng)前最行的版本,如下圖所示:

入門指南

DrissionPage提供的功能放在如下的路徑中:

from DrissionPage import *? # 瀏覽器類、配置類、頁面類

from DrissionPage.errors import *? # 錯誤類

from DrissionPage.common import *? # 輔助工具類

from DrissionPage.items import *? # 衍生對象,用于類型判斷

看到這里,相信大家也是很懵圈。不要著急,接下來慢慢分析,我也是第一次使用DrissionPage模塊。

瀏覽器類

from DrissionPage import Chromium

Chromium是瀏覽器類,瀏覽器類主要用于連接瀏覽器,管理標(biāo)簽頁及其他瀏覽器有關(guān)的操作。Chromium相當(dāng)于總管,可以作為瀏覽器入口,使用它產(chǎn)生的Tab對象去操作每一個標(biāo)簽頁。

頁面類

from DrissionPage import ChromiumPage

(1)ChromiumPage是將瀏覽器對象和第一個標(biāo)簽頁對象封裝在一起,用于控制瀏覽器。ChromiumPage簡化了操作,使用效果與直接使用Chromium對象基本一致。不同之處在于,ChromiumPage生成的標(biāo)簽頁對象是ChromiumTab,不能切換模式。

from DrissionPage import WebPage

(2)WebPage與ChromiumPage類似,不同之處在于WebPage產(chǎn)生的Tab對象是可以切換模式的,即既可以控制瀏覽器,也可以收發(fā)數(shù)據(jù)包。

from DrissionPage import SessionPage

(3)SessionPage用于收發(fā)數(shù)據(jù)包,是對requests和lxml進(jìn)行封裝實現(xiàn)的。SessionPage將網(wǎng)絡(luò)連接和結(jié)果解析封裝成頁面,操作邏輯和其他頁面保持一致。

配置工具

from DrissionPage import ChromiumOptions

(1)ChromiumOptions類用于設(shè)置瀏覽器的啟動參數(shù),這些參數(shù)只有在啟動瀏覽器有用,接管已經(jīng)存在的瀏覽器是不起作用的。

from DrissionPage import SessionOptions

(2)SessionOptions類用于設(shè)置Session對象啟動參數(shù),用于配置Session Page或webPage的s模式的連接參數(shù)。

from DrissionPage.common import Settings

(3)Settings用全局的配置,如找不到元素是否拋出異常。

輔助工具

from DrissionPage.common import Keys

(1)Keys:按鍵類,用于鍵入 ctrl、alt 等按鍵。

from DrissionPage.common import By

(2)By:同selenium一樣。

其他工具

  • wait_until:可等待傳入的方法結(jié)果為真
  • make_session_ele:從 html 文本生成ChromiumElement對象
  • configs_to_here:把配置文件復(fù)制到當(dāng)前路徑
  • get_blob:獲取指定的 blob 資源
  • tree:用于打印頁面對象或元素對象結(jié)構(gòu)
  • from_selenium:用于對接 selenium 代碼
  • from_playwright:用于對接 playwright 代碼

異常

from DrissionPage.errors import ElementNotFoundError

異常放在DrissionPage.errors路徑。

衍生對象

from DrissionPage.items import SessionElement
from DrissionPage.items import ChromiumElement
from DrissionPage.items import ShadowRoot
from DrissionPage.items import NoneElement
from DrissionPage.items import ChromiumTab
from DrissionPage.items import MixTab
from DrissionPage.items import ChromiumFrame

Tab、Element 等被其它對象生成的對象,開發(fā)過程中需要類型判斷時需要導(dǎo)入這些類型。

設(shè)置語言

DrissionPage的報錯信息及提示支持中文和英文,設(shè)置中文提示的方法如下:

from DrissionPage.common import SettingsSettings.set_language('zh_cn')  # 設(shè)置為中文時,填入'zh_cn'Settings.set_language('en')  # 默認(rèn)是英文提示

準(zhǔn)備工作

測試是否能夠通過DrissionPage啟動瀏覽器,我們這里采用的Chrome。對應(yīng)的代碼如下:

from DrissionPage import Chromiumtab = Chromium().latest_tab
tab.get('https://DrissionPage.cn')

在pycharm中運行上述代碼,發(fā)現(xiàn)Chrome能夠自動打開并且能夠訪問官網(wǎng),說明我們的配置沒有問題。

如果在程序運行的過程中報錯,說明我們的Chrome路徑設(shè)置有問題,

查找路徑

(1)查找自身電腦中Chrome的路徑,方法如下:

打開自己餓Chrome瀏覽器,在地址欄中輸入chrome://version,回車。在加載中的頁面中看“執(zhí)行性文件”一欄,其后面就是我們需要的Chrome路徑。

設(shè)置路徑

設(shè)置路徑的方法一:

設(shè)置路徑的方法二:

設(shè)置的方法大家可以參考官網(wǎng)的教程,非常的方便,這里不再贅述

🌏 準(zhǔn)備工作 | DrissionPage官網(wǎng)

操作瀏覽器

from DrissionPage import Chromium# 啟動或接管瀏覽器,并創(chuàng)建標(biāo)簽頁對象
tab = Chromium().latest_tab  # 創(chuàng)建一個Chromium對象,用于連接瀏覽器,并用latest_tab獲取一個標(biāo)簽頁對象
# 跳轉(zhuǎn)到登錄頁面
tab.get('https://gitee.com/login') # get()方法用于訪問參數(shù)中的網(wǎng)址。它會等待頁面完全加載,再繼續(xù)執(zhí)行后面的代碼。默認(rèn)是等待10秒
# 定位到賬號文本框,獲取文本框元素
ele = tab.ele('#user_login') # 通過html代碼中的id的名字
# 輸入對文本框輸入賬號
ele.input('1234567')
# 定位到密碼文本框并輸入密碼
tab.ele('#user_password').input('1234567') # 通過鏈?zhǔn)讲僮髦苯虞斎雽?yīng)的文本
# 點擊登錄按鈕
tab.ele('@value=登 錄').click() # 通過value值確定元素 @表示按屬性名查找

基本概念

網(wǎng)頁自動化的兩種形式:

(1)直接服務(wù)器發(fā)送數(shù)據(jù)包,獲取需要的數(shù)據(jù);

(2)控制瀏覽器和網(wǎng)頁進(jìn)行交互。

基本使用邏輯如下:無論是控制瀏覽器還是收發(fā)數(shù)據(jù),操作邏輯基本一致。

  • 創(chuàng)建頁面對象
  • 從頁面對象中獲取元素對象
  • 對元素對象讀取或操作,實現(xiàn)數(shù)據(jù)獲取和頁面控制

最主要的對象有兩種:頁面對象和其生成的元素對象

主要對象

瀏覽器和標(biāo)簽頁對象:

  • Chromium:瀏覽器對象,用于連接瀏覽器,管理標(biāo)簽頁以及其他瀏覽器有關(guān)的操作
  • MixTab:瀏覽器標(biāo)簽頁對象,由Chromium對象產(chǎn)生,一個對象控制一個實際的標(biāo)簽頁
  • ChromiumTab:也是標(biāo)簽頁對象,由ChromiumPage對象產(chǎn)生,不可切換收發(fā)數(shù)據(jù)包模式

元素對象:

  • ChromiumElement:瀏覽器元素對象
  • SessionElement:靜態(tài)元素對象
  • ChromiumFrame<iframe>元素對象,兼有標(biāo)簽頁對象和元素特性
  • ShadowRoot:shadow-root 元素對象

Page對象:

  • ChromiumPage:能管理瀏覽器本身的標(biāo)簽頁對象,可用作程序入口
  • WebPage:類似于ChromiumPage,整合瀏覽器控制和收發(fā)數(shù)據(jù)包于一體的頁面對象
  • SessionPage:單純用于收發(fā)數(shù)據(jù)包的頁面對象,可單獨使用(不會啟動新瀏覽器窗口)

稱呼:

  • MixTab、ChromiumTab統(tǒng)稱為 Tab 對象
  • ChromiumPage、WebPageSessionPage統(tǒng)稱為 Page 對象
  • Page 對象、Tab 對象和ChromiumFrame統(tǒng)稱為頁面對象

工作模式

MixTab和WebPage既可以控制瀏覽器對象,也可以用數(shù)據(jù)包的方式訪問網(wǎng)絡(luò)。通俗的講前者就是如同selenium的工作模式,后者就是requests的工作模式,也就是前面所說的網(wǎng)頁自動化的兩種形式。

在DrissionPage中,者兩種工作模式分為d模式和s模式,頁面對象可以在這兩種工作模式之間切換,但任一時間只能是一種工作模式。

d模式用于控制瀏覽器對象,不僅可以讀取瀏覽器獲取到的信息,還能對頁面進(jìn)行操作,如點擊、填寫、開關(guān)標(biāo)簽頁、改變元素屬性、執(zhí)行 js 腳本等等。d 模式功能強大,但運行速度受瀏覽器制約非常緩慢,而且需要占用大量內(nèi)存。

s模式基于數(shù)據(jù)包進(jìn)行讀取或發(fā)送,不能對頁面進(jìn)行操作,不能運行 js。爬取數(shù)據(jù)時,如網(wǎng)站數(shù)據(jù)包較為簡單,應(yīng)首選 s 模式。

模式切換

MixTabWebPage對象可以在 d 模式和 s 模式之間切換,這通常用于以下情況:

  • 當(dāng)?shù)卿涷炞C很嚴(yán)格,難以解構(gòu),如有驗證碼的時候,用瀏覽器處理登錄,然后轉(zhuǎn)換成 s 模式爬取數(shù)據(jù)。既避免了處理燒腦的 js,又能享受 s 模式的速度。
  • 頁面數(shù)據(jù)由 js 產(chǎn)生,且頁面結(jié)構(gòu)極其復(fù)雜,可以用 d 模式讀取頁面元素,然后把元素轉(zhuǎn)成 s 模式的元素進(jìn)行分析??梢詷O大地提高 d 模式的處理速度。

以上模式轉(zhuǎn)換的思想非常重要。比如說一個網(wǎng)站需要requests攜帶cookie信息才可以請求到數(shù)據(jù),倒是該網(wǎng)站的cookie獲取非常困難(數(shù)據(jù)加密,或者驗證碼登錄等),這時我們應(yīng)該能夠想到利用selenium完成網(wǎng)站的登錄,獲取cookie信息,然后再使用requests攜帶cookie信息完成數(shù)據(jù)請求。

http://www.risenshineclean.com/news/48156.html

相關(guān)文章:

  • 整站排名優(yōu)化品牌怎么推廣網(wǎng)站鏈接
  • 專業(yè)做淘寶網(wǎng)站公司嗎seo是什么職業(yè)崗位
  • 部署在本地的wordpress太原網(wǎng)站優(yōu)化公司
  • 武昌網(wǎng)站建設(shè)推廣手段和渠道有哪些
  • 專業(yè)做網(wǎng)站app的公司有哪些有品質(zhì)的網(wǎng)站推廣公司
  • 如何網(wǎng)站建設(shè)seo優(yōu)化排名百度教程
  • 物流三方網(wǎng)站怎么做重慶森林電影
  • 網(wǎng)站數(shù)據(jù)鏈接怎么做商城推廣軟文范文
  • 泉州網(wǎng)站制作平臺谷歌google play下載
  • 如何做網(wǎng)絡(luò)營銷直播倉山區(qū)seo引擎優(yōu)化軟件
  • 北京最好的網(wǎng)站建設(shè)公司全國疫情高峰感染高峰進(jìn)度
  • 西寧商城網(wǎng)站建設(shè)公司網(wǎng)站關(guān)鍵詞優(yōu)化有用嗎
  • 滄州網(wǎng)站備案哈爾濱網(wǎng)絡(luò)推廣
  • 如何做電商網(wǎng)站成都seo培
  • 世界杯視頻直播網(wǎng)站房地產(chǎn)十大營銷手段
  • 太原網(wǎng)站制作案例公司網(wǎng)站模版
  • 柯橋做網(wǎng)站的公司百度網(wǎng)盤官網(wǎng)登錄首頁
  • 怎么做網(wǎng)站訪問統(tǒng)計手機創(chuàng)建網(wǎng)站免費注冊
  • 有pc網(wǎng)站 移動網(wǎng)站怎么做關(guān)鍵詞怎么找出來
  • 企業(yè)網(wǎng)站建設(shè)哪里好推廣鏈接點擊器
  • 鶴壁seo東莞做網(wǎng)站優(yōu)化
  • 網(wǎng)站是誰做的企業(yè)產(chǎn)品網(wǎng)絡(luò)推廣
  • java網(wǎng)站開發(fā)計劃表情感營銷案例
  • 廣州部隊網(wǎng)站建設(shè)費用拓客團(tuán)隊怎么聯(lián)系
  • 做網(wǎng)站需要用什么開發(fā)軟件福州百度分公司
  • 北京網(wǎng)站編程培訓(xùn)石家莊關(guān)鍵詞優(yōu)化平臺
  • 刪除的網(wǎng)站做404東莞網(wǎng)站seo優(yōu)化托管
  • 免費發(fā)布信息網(wǎng)站大全666代刷網(wǎng)站推廣快速
  • 智能建站軟件東莞網(wǎng)站seo公司哪家大
  • 物流公司網(wǎng)站建設(shè)方案長沙seo網(wǎng)站管理