国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

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

政府網(wǎng)站建設(shè)多少錢商品促銷活動(dòng)策劃方案

政府網(wǎng)站建設(shè)多少錢,商品促銷活動(dòng)策劃方案,蕪湖今天剛剛發(fā)生的新聞,做網(wǎng)站怎么報(bào)價(jià)拉票 親愛的小伙伴們或者童鞋們,喜歡宏哥文章的,請(qǐng)動(dòng)動(dòng)你們發(fā)財(cái)小手,給我投投票票 。 祝2025小伙伴們工作順利,家庭和睦,心想事成,財(cái)源滾滾! 我的票還有7票,互票的朋友私信給我。 投…

拉票

親愛的小伙伴們或者童鞋們,喜歡宏哥文章的,請(qǐng)動(dòng)動(dòng)你們發(fā)財(cái)小手,給我投投票票 。
祝2025小伙伴們工作順利,家庭和睦,心想事成,財(cái)源滾滾!
我的票還有7票,互票的朋友私信給我。

投票鏈接:https://www.csdn.net/blogstar2024/detail/296

1.簡(jiǎn)介

跟隨宏哥學(xué)習(xí)的小伙伴或者童鞋們想必已經(jīng)在宏哥Python+Playwright系列文章中知道宏哥如何處理前邊文章中提到的反爬蟲機(jī)制。今天跟隨宏哥看一下java語(yǔ)言是如何處理的,已經(jīng)按照之前的處理方式是否可以成功的處理呢?那么接下來就隨宏哥一步步來探索這個(gè)未知之謎。好了廢話不說,直接進(jìn)入今天的主題。

2.啟動(dòng)瀏覽器的模式

宏哥按照自己的理解將其分為兩種啟動(dòng)模式,一種是:無痕模式啟動(dòng)瀏覽器,另一種是:非無痕模式啟動(dòng)瀏覽器。

playwright 提供了launchPersistentContext啟動(dòng)瀏覽器的方法,可以非無痕模式啟動(dòng)瀏覽器。

無痕模式啟動(dòng)瀏覽器適合做自動(dòng)化測(cè)試的人員。

非無痕模式啟動(dòng)瀏覽器適合一些爬蟲用戶人員。

2.1launchPersistentContext

官方API的文檔地址:瀏覽器類型 |Playwright Java

返回持久性瀏覽器上下文實(shí)例。

啟動(dòng)使用位于?userDataDir?的持久性存儲(chǔ)的瀏覽器,并返回唯一的上下文。關(guān)閉此上下文將自動(dòng)關(guān)閉瀏覽器。

2.2無痕模式啟動(dòng)瀏覽器

1.launch()方法是無痕模式啟動(dòng)瀏覽器。

參考代碼如下:

package com.bjhg.playwright;import com.microsoft.playwright.Browser;
import com.microsoft.playwright.BrowserContext;
import com.microsoft.playwright.BrowserType;
import com.microsoft.playwright.Page;
import com.microsoft.playwright.Playwright;/*** @author 北京-宏哥* * @公眾號(hào):北京宏哥(微信搜索,關(guān)注宏哥,提前解鎖更多測(cè)試干貨)* * 《剛剛問世》系列初窺篇-Java+Playwright自動(dòng)化測(cè)試-23- 操作鼠標(biāo)拖拽 - 番外篇(詳細(xì)教程)** 2024年02月14日*/
public class Test_Drag {public static void main(String[] args) {try (Playwright playwright = Playwright.create()) {//使用chromium瀏覽器,# 瀏覽器配置,設(shè)置以GUI模式啟動(dòng)Chrome瀏覽器(要查看瀏覽器UI,在啟動(dòng)瀏覽器時(shí)傳遞?headless=false?標(biāo)志。您還可以使用?slowMo?來減慢執(zhí)行速度。Browser browser = playwright.chromium().launch(new BrowserType.LaunchOptions().setHeadless(false).setSlowMo(3000));BrowserContext context = browser.newContext();//創(chuàng)建pagePage page = context.newPage();//瀏覽器打開百度page.navigate("https://www.cnblogs.com/du-hong");//關(guān)閉pagepage.close();//關(guān)閉browserbrowser.close();}}
}

2.無痕模式啟動(dòng)瀏覽器,會(huì)在瀏覽器右上角出現(xiàn)“無痕模式”,如下圖所示:

2.3非無痕模式啟動(dòng)瀏覽器

1.如果網(wǎng)站被反爬蟲機(jī)制識(shí)別或者被監(jiān)測(cè)無痕模式不能使用,那么可以用launchPersistentContext()方法進(jìn)行非無痕(有痕跡)模式啟動(dòng)瀏覽器。

相關(guān)參數(shù)說明:

  • userDataDir ?: 用戶數(shù)據(jù)目錄,此參數(shù)是必須的,可以自定義一個(gè)目錄
  • setAcceptDownloads: 接收下載事件
  • setHeadless: 是否設(shè)置無頭模式
  • setChannel: 指定瀏覽器類型,默認(rèn)chromium

參考代碼如下:

package com.bjhg.playwright;import java.io.File;
import com.microsoft.playwright.BrowserContext;
import com.microsoft.playwright.BrowserType;
import com.microsoft.playwright.Page;
import com.microsoft.playwright.Playwright;/*** @author 北京-宏哥* * @公眾號(hào):北京宏哥(微信搜索,關(guān)注宏哥,提前解鎖更多測(cè)試干貨)* * 《剛剛問世》系列初窺篇-Java+Playwright自動(dòng)化測(cè)試-23- 操作鼠標(biāo)拖拽 - 番外篇(詳細(xì)教程)** 2025年02月14日*/
public class Test_Dialog {public static void main(String[] args) {try (Playwright playwright = Playwright.create()) {BrowserType.LaunchPersistentContextOptions launch=new BrowserType.LaunchPersistentContextOptions(); launch.setViewportSize(1920,1080);launch.setAcceptDownloads(true);launch.setChannel("chrome");launch.setHeadless(false);launch.setSlowMo(3000); BrowserContext browserContext = playwright.chromium().launchPersistentContext(new File("C:\\Users\\Administrator\\Desktop\\test").toPath(),launch); Page page = browserContext.newPage(); page.navigate("https://www.baidu.com");System.out.println("Test Pass");//關(guān)閉pagepage.close();//關(guān)閉browserbrowserContext.close();}}
}

2.宏哥發(fā)現(xiàn)以上代碼運(yùn)行后,會(huì)多出一個(gè)空白頁(yè)。如下圖所示:

3.進(jìn)入launchPersistentContext()方法,發(fā)現(xiàn)是因?yàn)槭褂胠aunchPersistentContext()方法會(huì)自動(dòng)打開一個(gè)tab標(biāo)簽頁(yè),后面代碼browserContext.newPage()重新打開了一個(gè)新的page對(duì)象。所以才會(huì)多一個(gè)空白頁(yè)。

解決辦法很簡(jiǎn)單,去掉browserContext.newPage()代碼即可。直接用默認(rèn)打開發(fā)tab標(biāo)簽頁(yè)對(duì)象。

參考代碼如下:

package com.bjhg.playwright;import java.io.File;
import com.microsoft.playwright.BrowserContext;
import com.microsoft.playwright.BrowserType;
import com.microsoft.playwright.Page;
import com.microsoft.playwright.Playwright;/*** @author 北京-宏哥* * @公眾號(hào):北京宏哥(微信搜索,關(guān)注宏哥,提前解鎖更多測(cè)試干貨)* * 《剛剛問世》系列初窺篇-Java+Playwright自動(dòng)化測(cè)試-23- 操作鼠標(biāo)拖拽 - 番外篇(詳細(xì)教程)** 2025年02月14日*/
public class Test_Dialog {public static void main(String[] args) {try (Playwright playwright = Playwright.create()) {BrowserType.LaunchPersistentContextOptions launch=new BrowserType.LaunchPersistentContextOptions(); launch.setViewportSize(1920,1080);launch.setAcceptDownloads(true);launch.setChannel("chrome");launch.setHeadless(false);launch.setSlowMo(3000); BrowserContext browserContext = playwright.chromium().launchPersistentContext(new File("C:\\Users\\Administrator\\Desktop\\test").toPath(),launch); //            Page page = browserContext.newPage(); Page page = browserContext.pages().get(0);page.navigate("https://www.baidu.com");System.out.println("Test Pass");//關(guān)閉pagepage.close();//關(guān)閉browserbrowserContext.close();}}
}

運(yùn)行代碼如下(可以清楚地看到?jīng)]有 新增的空白頁(yè)面了):

3.項(xiàng)目實(shí)戰(zhàn)

這里宏哥還用之前的那個(gè)實(shí)例進(jìn)行演示,也就是在文章最后提到反爬蟲的那篇文章的例子:攜程旅行,注冊(cè)頁(yè)面的一個(gè)滑動(dòng),進(jìn)行項(xiàng)目實(shí)戰(zhàn)。如下圖所示:

3.1代碼設(shè)計(jì)

參考前邊提到的方法進(jìn)行代碼設(shè)計(jì)如下:

3.2參考代碼
package com.bjhg.playwright;import java.io.File;import com.microsoft.playwright.BrowserContext;
import com.microsoft.playwright.BrowserType;
import com.microsoft.playwright.Locator;
import com.microsoft.playwright.Page;
import com.microsoft.playwright.Playwright;/*** @author 北京-宏哥* * @公眾號(hào):北京宏哥(微信搜索,關(guān)注宏哥,提前解鎖更多測(cè)試干貨)* * 《剛剛問世》系列初窺篇-Java+Playwright自動(dòng)化測(cè)試-23- 操作鼠標(biāo)拖拽 - 番外篇(詳細(xì)教程)** 2025年02月14日*/
public class Test_Dialog {public static void main(String[] args) {try (Playwright playwright = Playwright.create()) {BrowserType.LaunchPersistentContextOptions launch=new BrowserType.LaunchPersistentContextOptions(); launch.setViewportSize(1920,1080);launch.setAcceptDownloads(true);launch.setChannel("chrome");launch.setHeadless(false);launch.setSlowMo(5000); launch.setBypassCSP(true);BrowserContext browserContext = playwright.chromium().launchPersistentContext(new File("C:\\Users\\Administrator\\Desktop\\test").toPath(),launch); //            Page page = browserContext.newPage(); Page page = browserContext.pages().get(0);//3.瀏覽器訪問demopage.navigate("https://passport.ctrip.com/user/reg/home");page.locator("//*[@id='agr_pop']/div[3]/a[2]").click();//4.開始拖拽//獲取拖動(dòng)按鈕位置并拖動(dòng)Locator slider = page.locator("//*[@id='slideCode']/div[1]/div[2]");// 使用鼠標(biāo)滑動(dòng)滑塊page.mouse().move(slider.boundingBox().x + slider.boundingBox().width / 2, slider.boundingBox().y + slider.boundingBox().height / 2);page.mouse().down();// 根據(jù)滑動(dòng)的范圍,這里使用滑動(dòng)最大距離page.mouse().move(slider.boundingBox().x + slider.boundingBox().width / 0.5+380, slider.boundingBox().y + slider.boundingBox().height / 2);page.mouse().up();//斷點(diǎn)調(diào)試page.pause();System.out.println("Test Pass");//關(guān)閉pagepage.close();//關(guān)閉browserbrowserContext.close();}}
}
3.3運(yùn)行代碼

1.運(yùn)行代碼,右鍵Run As->Java Application,就可以看到控制臺(tái)輸出,如下圖所示:

2.運(yùn)行代碼后電腦端的瀏覽器的動(dòng)作((可以清楚地的看到滑動(dòng)后,又出現(xiàn)了反爬蟲機(jī)制,又彈出選字校驗(yàn)))。如下圖所示:

4.小結(jié)

宏哥在實(shí)踐的過程中,發(fā)現(xiàn)無論手動(dòng)還是利用上邊的代碼進(jìn)行自動(dòng)化測(cè)試都會(huì)出現(xiàn)那個(gè)反爬蟲的機(jī)制彈出,因此宏哥懷疑最可能的問題就是由于宏哥近期頻繁訪問演示,可能被反爬蟲的機(jī)制判斷后,進(jìn)行了IP鎖定,因此會(huì)出現(xiàn)這種情況,因?yàn)楹旮缭诘谝淮芜M(jìn)行手動(dòng)滑動(dòng)驗(yàn)證的時(shí)候,就沒有出現(xiàn)。所以宏哥懷疑是被鎖定了。一開始宏哥以為是緩沖的問題,宏哥清除瀏覽器緩沖和歷史記錄,然后重啟電腦最后結(jié)果仍然是一樣。所以宏哥懷疑被網(wǎng)站的反爬蟲鎖定IP,最后經(jīng)過Python和Java的這部分實(shí)踐,宏哥覺得這種有痕跡的啟動(dòng)模式其實(shí)是說白了,就是啟動(dòng)本地安裝的瀏覽器進(jìn)行自動(dòng)化測(cè)試,而非我們一開始搭建環(huán)境時(shí)下載的瀏覽器。因?yàn)楹旮缭趫?zhí)行代碼的過程中報(bào)了一個(gè)無法找到本地安裝chrome的可執(zhí)行文件的路勁的錯(cuò)誤,將其安裝文件拷貝到此路徑下,代碼運(yùn)行正常沒有報(bào)錯(cuò)。宏哥也查了各種反爬蟲機(jī)制的資料,進(jìn)行驗(yàn)證和實(shí)踐,折騰了半天還是沒有解決這個(gè)問題,也不知道python和java語(yǔ)言的有什么區(qū)別了,還是因?yàn)楸绘i定,有點(diǎn)懵。但是宏哥回過頭來又用Python語(yǔ)言的處理方法試了一下這個(gè)注冊(cè)頁(yè)面,仍然可以成功處理,看來不是鎖定的問題。但是其不是很穩(wěn)定啊,后邊在運(yùn)行代碼也會(huì)彈出選字校驗(yàn)。各位有什么好辦法可以留言給宏哥,抱歉了沒有幫到大家!

4.1實(shí)戰(zhàn)過程中遇到的坑及解決辦法

1.坑一:報(bào)錯(cuò)?message='Chromium distribution 'chrome' is not found at C:\Users\Administrator\AppData\Local\Google\Chrome\Application\chrome.exe ,如下圖所示:

解決辦法:找到chrome安裝路徑,將安裝文件全部拷貝到代碼中報(bào)錯(cuò)的路徑下即可,如下圖所示:

2.坑二:報(bào)錯(cuò)類似這樣 navigating to "https://passport.ctrip.com/user/reg/home", waiting until "load"。如下圖所示:

解決辦法:將launch.setSlowMo(50);的時(shí)間加長(zhǎng)即可。

4.2部分參數(shù)詳細(xì)說明

1.launchPersistentContext創(chuàng)建的瀏覽器對(duì)象,為什么無法使用browser.newContext()創(chuàng)建上下文?

因?yàn)閘aunchPersistentContext字面上意思就已經(jīng)是一個(gè)context上下文對(duì)象了,所以無法創(chuàng)建上下文,只能創(chuàng)建page對(duì)象。

2.userDataDir路徑參數(shù)的作用什么?

userDataDir是指定瀏覽器啟動(dòng)的用戶數(shù)據(jù)緩存目錄,當(dāng)指定一個(gè)新的目錄時(shí),啟動(dòng)瀏覽器會(huì)發(fā)現(xiàn)自動(dòng)生成緩存文件。打開C:\Users\\DELL\Desktop\Chrome\test目錄會(huì)看到加載的瀏覽器緩存文件。如下圖所示:

3.userDataDir能不能記住用戶登錄的狀態(tài)?

userDataDir就是你自己定義的打開瀏覽器保存的用戶數(shù)據(jù),包含了用戶的cookies,所以你只要登錄過,就會(huì)自動(dòng)保存。
所以你只要代碼打開網(wǎng)站,如果不能通過代碼自動(dòng)登錄(可能有一些驗(yàn)證碼什么的),你可以斷點(diǎn)后手工去登錄一次,也會(huì)記住cookies。下次代碼再打開就不需要登錄了。

4.為什么按你的教程,我這個(gè)網(wǎng)站就無法保持登錄?

能不能保持登錄狀態(tài),主要看你網(wǎng)站的cookies有效期,有些網(wǎng)站關(guān)閉瀏覽器后就失效了,比如一些銀行的網(wǎng)站,你只要關(guān)閉瀏覽器窗口,下次就需要再次登錄。
簡(jiǎn)單來說一句話:你手工去操作一次,關(guān)閉瀏覽器,再打開還要不要登錄,如果關(guān)閉瀏覽器需要再次登錄,那代碼也沒法做到保持登錄。
有些博客網(wǎng)站,你登錄一次,cookies幾個(gè)月都有效,這種就可以利用緩存的cookies保持登錄。

5.為什么網(wǎng)上其他教程userDataDir寫chrome的安裝目錄?

其實(shí)沒必要非要寫chrome的安裝目錄"C:\Users\{getpass.getuser()}\AppData\Local\Google\Chrome\UserData"。
如果你寫的是系統(tǒng)默認(rèn)安裝目錄的用戶數(shù)據(jù),那你本地瀏覽器打開后,執(zhí)行代碼就會(huì)報(bào)錯(cuò)。所以不推薦!

6.默認(rèn)啟動(dòng)的是chromium瀏覽器,能不能換成其他的瀏覽器?

可以通過"channel"參數(shù)指定瀏覽器,可以支持chromium系列:chromium、chrome、chrome-beta、msedge。

http://aloenet.com.cn/news/47086.html

相關(guān)文章:

  • wordpress 頭像設(shè)置湖南靠譜seo優(yōu)化公司
  • 網(wǎng)站如何做移動(dòng)適配百度一下百度主頁(yè)
  • 給我免費(fèi)播放片高清在線觀看視頻搜索引擎優(yōu)化面對(duì)哪些困境
  • 西安做網(wǎng)站的公司客服企業(yè)網(wǎng)絡(luò)營(yíng)銷策劃方案范文
  • 佛山企業(yè)用seo策略seo技術(shù)是干什么的
  • 宜陽(yáng)縣網(wǎng)站建設(shè)怎么自己注冊(cè)網(wǎng)站平臺(tái)了
  • 石家莊網(wǎng)站外包公司經(jīng)典營(yíng)銷案例
  • 成都疫情最新新聞百度seo刷排名工具
  • 網(wǎng)站后臺(tái)注入推廣普通話手抄報(bào)內(nèi)容大全資料
  • 開發(fā)網(wǎng)站通過第三方微信認(rèn)證登錄開發(fā)費(fèi)用北京seo運(yùn)營(yíng)推廣
  • 廣州網(wǎng)站推廣多少錢重慶seo網(wǎng)絡(luò)推廣關(guān)鍵詞
  • 參考消息電子版手機(jī)版網(wǎng)站優(yōu)化方法
  • 建設(shè)銀行網(wǎng)站查詢密碼怎么設(shè)置最新網(wǎng)站查詢工具
  • 科技公司網(wǎng)站主頁(yè)設(shè)計(jì)網(wǎng)絡(luò)營(yíng)銷網(wǎng)站平臺(tái)有哪些
  • 常州網(wǎng)站設(shè)計(jì)制作推廣類軟文
  • 江陰做網(wǎng)站的地方企業(yè)網(wǎng)站建設(shè)規(guī)劃
  • 母嬰網(wǎng)站怎么做中國(guó)十大網(wǎng)絡(luò)銷售公司
  • 網(wǎng)站每日簽到怎么做大一html網(wǎng)頁(yè)制作
  • 汕頭澄海招聘網(wǎng)搜索引擎優(yōu)化期末考試答案
  • 南京網(wǎng)站開發(fā)注冊(cè)app國(guó)外直播平臺(tái)tiktok
  • 網(wǎng)站廣告費(fèi)一般多少錢網(wǎng)頁(yè)生成app
  • 在本地用dedecms做好的網(wǎng)站如何上傳到服務(wù)器?外貿(mào)網(wǎng)站平臺(tái)都有哪些
  • 六安網(wǎng)站建設(shè)企業(yè)seo優(yōu)化系統(tǒng)
  • 全景網(wǎng)站如何建設(shè)站長(zhǎng)之家
  • 藍(lán)韻官方網(wǎng)站海外aso優(yōu)化
  • php自適應(yīng)網(wǎng)站最近發(fā)生的新聞
  • 網(wǎng)站建設(shè)知識(shí)百度官方網(wǎng)站下載安裝
  • 做除塵環(huán)保的如何推廣自己的網(wǎng)站seo收錄查詢工具
  • 2022年最新血糖標(biāo)準(zhǔn)權(quán)威發(fā)布徐州seo外包
  • 上海平臺(tái)網(wǎng)站制作公司新東方在線網(wǎng)上課程