這是一個商業網站.
playwright登入操作各方面都沒問題.
目前卡關在按下觀看視頻會另外跳出一個新頁面
新分頁上本身有一個播放器.
但是如果是用playwright開啟的chromium瀏覽器
這個播放頁面一樣會出現.但是影片時長變成0分0秒
我做了一些測試如果用playwright開啟的chromium瀏覽器改成手動去操作
一樣播放時間變成0分0秒
但是此時我只要中斷python的腳本運作後
改用手動操作這個由playwright開啟的chromium瀏覽器卻可以播放視頻了.
如果不中斷python程序則影片時間長度變成0秒
究竟網站是怎樣判斷反爬的?
請教各位前輩高手指導它反爬的判斷是什麼?
一定要我們中斷python程序才可以播放視頻.
應該是UA以外的參數去認定使用者是電腦導致,建議試試看用 user_data_dir
假設使用Chrome 他會有一個User Data資料夾
複製一份命名為 User Data 1
然後程式引用那份資料試試看
https://playwright.dev/python/docs/api/class-browsertype
https://blog.csdn.net/weixin_42099874/article/details/129742856browser_type.launch_persistent_context(user_data_dir)
遇到這種問題,妳要考慮的是影片究竟是處於一個樣的狀態
0分0秒,加載沒有完成
那麼這個影片是在哪裡卡住了呢?
網頁渲染?請求等待?
如果是前者,代表你其實拿到了資料,但網頁經過一些手段沒能成功加載,所以也可能不是網站做了反爬,只是在某些狀況下,剛好因為你用selenium這類工具,造成bug無法渲染
後者的話,沒能成功取得資料,有可能就是真的被擋了,要想辦法繞開
妳要觀察的是 在妳中斷後,整個畫面開始運作時做了甚麼
所以正確的邏輯是
一進畫面就先F12
切到Network Tab
等到影片卡住的地方clear
然後關掉自動化程式運作,查看有沒有進行新的請求,
如果有,嘗試去分析js 這個請求觸發是怎麼觸發的(如果混淆到妳無法處理,其實妳該考慮放棄或找其他出路,除非妳願意投入時間)
如果沒有 那麼可能只是在渲染階段卡住了,但這個渲染階段被卡住可能狀況就很多樣化了,沒辦法一一列舉,妳有遇到再說吧