iT邦幫忙

2

請教大神python做得到調用一個當前已打開的瀏覽器而不是重新打開一個瀏覽器嗎?

  • 分享至 

  • xImage

使用selenium有個缺點他會重新打開一個瀏覽器
這樣的話會有兩個缺點
一個是有的網站會偵測到這是非人類操控瀏覽器而被反爬
另一個問題是現在很多網站都需要手機簡訊登入
因此想請教前輩們在python中可以做到控制一個當前我已經在使用的瀏覽器去做操作嗎?
我希望的是selenium是不是可以是不是可以控制一個當前我正已經在使用的瀏覽器.例如這個瀏覽器已經開啟了10個分頁.但是我看起來好像不可能.除非是這個瀏覽器已經有安裝一個可以跟python連接的插件才有可能.不然python是不可能可以控制一個你正在使用的瀏覽器.
我需要的是向uibot這樣控制一個當前已經在使用的瀏覽器.
不是要這種方式
https://blog.csdn.net/weixin_45081575/article/details/112621581
是要向uibot這樣的方式控制一個自己已經正在使用的瀏覽器.
https://www.bilibili.com/video/BV1hY411j7hv?t=201.3

看更多先前的討論...收起先前的討論...
ccutmis iT邦高手 2 級 ‧ 2024-01-27 11:44:33 檢舉
在google搜'Python Selenium 操控已存在的視窗 知乎' 可以得到很多參考資料,例如這個:
Selenium控制已打开的浏览器抓取公开跨境电商数据
https://www.zhihu.com/tardis/zm/art/341398713?source_id=1003
或直接問 ChatGPT...
用Jupyter Notebook
想多做什麼就新增一個Cell
fdfanmo iT邦新手 5 級 ‧ 2024-01-29 11:57:08 檢舉
謝謝上面兩位大大的分享.但是我希望的是selenium是不是可以是不是可以控制一個當前我正已經在使用的瀏覽器.例如這個瀏覽器已經開啟了10個分頁.但是我看起來好像不可能.除非是這個瀏覽器已經有安裝一個可以跟python連接的插件才有可能.不然python是不可能可以控制一個你正在使用的瀏覽器.
我需要的是向uibot這樣控制一個當前已經在使用的瀏覽器.
不是要這種方式
https://blog.csdn.net/weixin_45081575/article/details/112621581
是要向uibot這樣的方式控制一個自己已經正在使用的瀏覽器.
https://www.bilibili.com/video/BV1hY411j7hv?t=201.3
yaekiou iT邦新手 5 級 ‧ 2024-01-29 19:18:32 檢舉
如果我沒有理解錯你的問題,你可以試一下 Playwright?https://stackoverflow.com/a/75431084
fdfanmo iT邦新手 5 級 ‧ 2024-01-30 12:19:59 檢舉
回覆yaekiou:
基本上我大概弄清楚了.要讓python控制一個當前我們正在使用的瀏覽器基本不可能Playwright也不可能可以做到.因為Playwright並沒有安裝一個插件在你當前正在使用的這個瀏覽器上.
目前看到的方法不外乎是指定一個port跟一個指定的瀏覽器暫存資料夾.讓python去控制一個已打開的瀏覽器(但前提是這個瀏覽器也是利用python打開的並不會是我們當前正在使用的這個瀏覽器)我的目的是我今天正在使用的這個瀏覽器逛了兩個小時開了5個網頁.然後執行python代碼他會直接操作目前我正在使用的這個瀏覽器(不會再自己新打開一個瀏覽器).要用這個方法只有一個可能使用一個已安裝的瀏覽器插件才能控制到當前正在使用的這個瀏覽器.如UIBOT和微軟的Power Automate這樣.它們之所以可以操控一個你當前正在使用的瀏覽器是因為他們在你當前的瀏覽器上已經有安裝了他們的插件.這才有可能辦到控制一個你當前正在使用的瀏覽器.
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
0
stan014037
iT邦見習生 ‧ 2024-01-28 13:05:16
fdfanmo iT邦新手 5 級 ‧ 2024-01-29 12:28:13 檢舉

謝謝說明~這個文章我之前也有看到.我甚至為了查東西買了CSDN 2年半的會員.也成功開啟了一個新的瀏覽器.
不過這個與我想要的有一段差距.
因為他並不是打開一個我當前已經在使用的瀏覽器.
而是他再去打開了一個瀏覽器.並且控制這個瀏覽器.
好處是這個瀏覽器不會顯示chrome已被自動軟體控制.
可以躲過一些反爬.
不過我希望的是selenium是不是可以是不是可以控制一個當前我正已經在使用的瀏覽器.例如這個瀏覽器已經開啟了10個分頁.但是我看起來好像不可能.除非是這個瀏覽器已經有安裝一個可以跟python連接的插件才有可能.不然python是不可能可以控制一個你正在使用的瀏覽器.
我需要的是向uibot這樣控制一個當前已經在使用的瀏覽器.

1
yaekiou
iT邦新手 5 級 ‧ 2024-01-30 23:02:16

如果你可以使用帶有 --remote-debugging-port 參數的 Chrome
https://ithelp.ithome.com.tw/upload/images/20240130/201481456ZdxjnTPhZ.png

那以下程式是可以控制手動打開的 Chrome

from playwright.sync_api import sync_playwright

def main():
    with sync_playwright() as p:
        browser = p.chromium.connect_over_cdp("http://localhost:9222")
        default_context = browser.contexts[0]

        page = default_context.new_page()
        page.goto("https://example.com/")

        browser.close()

main()
fdfanmo iT邦新手 5 級 ‧ 2024-02-24 10:36:00 檢舉

謝謝幫忙.我最近也正在學使用playwright中.目前課程尚未看完.看完後再來實戰看看.

0
lethal
iT邦新手 5 級 ‧ 2024-02-13 01:21:48

當前視窗

window_before = browser.window_handles[0]

新視窗

window_after = browser.window_handles[1]
browser.switch_to.window(window_after)

fdfanmo iT邦新手 5 級 ‧ 2024-02-24 10:41:13 檢舉

謝謝幫忙.不過這個好像也是另外開啟一個由selenium驅動webdrive的瀏覽器.只是改成無頭模式的樣子.好像也是不能控制當前自己已經正在使用中的這個瀏覽器.

我要發表回答

立即登入回答