Python Selenium 快速開始、網頁截圖 By 彭彭

Поділитися
Вставка
  • Опубліковано 13 гру 2024

КОМЕНТАРІ • 130

  • @toughman2013
    @toughman2013 10 місяців тому +28

    提醒大家一下, 新的selenium 版本已經不要設定driver的路徑,系統會自動detect, 所以在driver的設定可以改成以下:
    driver = webdriver.Chrome()

    • @陳俊堯-g4d
      @陳俊堯-g4d 10 місяців тому +1

      感謝你提供的資訊,不然會顯示這段錯誤"SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape"。好奇問一下,以邏輯判斷來說,在python程式中指定一個絕對路徑不是也可以嗎?還是這會有什麼衝突,謝謝!!!!

    • @Cscer
      @Cscer 2 місяці тому

      您好 請問一下如果會閃退 該怎麼解? 有出現以下錯誤 謝謝
      raise exception_class(message, screen, stacktrace)
      selenium.common.exceptions.InvalidArgumentException: Message: invalid argument

    • @jjoo1014
      @jjoo1014 Місяць тому

      現在好像不需要DRIVER,更新chrome 到最新版,直接改成這樣就行
      from selenium import webdriver
      driver = webdriver.Chrome() #auto detect driver
      driver.get("www.google.com/")
      driver.save_screenshot("ss_google.png") #做ss
      driver.close()

    • @yungshenchen258
      @yungshenchen258 10 днів тому

      請問
      options=Options()
      options.chrome_executable_path="D: \Training\Codes\python\(chromedriver.exe"
      這段不用寫了嗎

  • @rogerhsieh8080
    @rogerhsieh8080 2 роки тому +3

    謝謝彭彭老師的教導,講的非常的清楚,十分感謝!!

    • @cwpeng-course
      @cwpeng-course  2 роки тому +1

      不會,很高興對你有幫助 :)

  • @咩咩背着洋娃娃
    @咩咩背着洋娃娃 Рік тому +1

    老師 最近開始聽你的課 真的好有趣啊!
    程式可以做到的事情好多
    真的超棒的!

    • @cwpeng-course
      @cwpeng-course  Рік тому

      哈哈哈,恭喜你踏入程式領域 :)

  • @changcavin8392
    @changcavin8392 Рік тому +6

    老師您好
    下列指令執行有錯誤訊息:
    options.chrome_executable_path ="C:\Users\user\Downloads\VSCode\chromedriver.exe"
    改為下列指令執行即可以
    options.chrome_executable_path ="C:\\Users\\user\\Downloads\\VSCode\\chromedriver.exe"

    • @cwpeng-course
      @cwpeng-course  Рік тому

      很好哦,能解決就好,確實字串中寫兩個斜線是用來做跳脫,用來表達一個斜線。

  • @xujason4607
    @xujason4607 2 роки тому +1

    全部实际操作了一遍,非常感谢彭彭老师

  • @李正國-v5n
    @李正國-v5n 10 місяців тому +2

    彭彭老師 謝謝教學

    • @cwpeng-course
      @cwpeng-course  10 місяців тому +1

      不客氣,謝謝你的回饋 :)

  • @tommy-bf4bl
    @tommy-bf4bl Рік тому +2

    謝謝老師,教得很清楚!!
    我這邊有一個問題,請問操作chrome和edge的基本指令都是一樣的嗎?

  • @NNTTF
    @NNTTF 2 роки тому +1

    Selenium教學耶!!!太棒了!!!

  • @雨魚-y1h
    @雨魚-y1h 2 роки тому +1

    等了幾年,終於教這個,太感動了

    • @cwpeng-course
      @cwpeng-course  2 роки тому

      哈哈哈,好哦,希望對你有點幫助 :)

    • @WndrX096
      @WndrX096 2 роки тому

      老司機阿 等了幾年... 小孩都上大學了

  • @劉哲明-x3g
    @劉哲明-x3g Рік тому +3

    老師你好,我的chrome版本如下
    版本 118.0.5993.118 (正式版本) (64 位元)
    但我無法找到合適的chromedriver
    請問該如何處理呢

    • @yuisanjpearthquake
      @yuisanjpearthquake Рік тому +1

      同問同問 我是改用edge 😅

    • @劉哲明-x3g
      @劉哲明-x3g Рік тому +1

      @@yuisanjpearthquake
      原來不是只有我遇到,請問可以分享程式碼嗎我有找到對應的版本,可惜還是運作不了

    • @cwpeng-course
      @cwpeng-course  Рік тому +1

      現在應該可以在這個網頁找到適合的版本
      googlechromelabs.github.io/chrome-for-testing/

  • @daniel870217
    @daniel870217 2 роки тому +2

    彭彭老師想請問我把CHROME DRIVER放C碟 CHROME DRIVER的路徑/要改成\才能執行 不然會跑出SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape 放D碟就沒事 請問這是甚麼問題呢?

    • @cwpeng-course
      @cwpeng-course  2 роки тому

      嗯嗯嗯,無法完全確定,可以知道的是路徑中有包含一些程式編碼無法解讀的符號 ~

    • @Mark-x2k6y
      @Mark-x2k6y 2 роки тому +2

      在路徑前面+個r試試看,原因: 編譯器將路徑中的 C:\Users\ 視為Unicode-Escape編碼的跳脫字元,因此\U被當成Unicode Code字串的起點,依照定義後面必需接8位數字 (ex. \U01000001) 來Decode,在此後面接了一串字母,因此產生Decode失敗的錯誤訊息。

    • @cwpeng-course
      @cwpeng-course  2 роки тому +1

      @@Mark-x2k6y 感謝分享,說得很清楚,我也有收穫到了!

    • @Mark-x2k6y
      @Mark-x2k6y Рік тому

      @@翁嘉偉-w4y r"C:\Users\Eric\Desktop\beeline.txt",這樣子試試看

    • @Mark-x2k6y
      @Mark-x2k6y Рік тому

      @@翁嘉偉-w4y r+在字串的前面

  • @遜鮑菇
    @遜鮑菇 Рік тому +1

    最近google更新成版本116之後,chromedriver不知道怎麼下載使用,希望老師有空能夠教學~

    • @cwpeng-course
      @cwpeng-course  Рік тому +1

      建議就直接更新到 117 版,然後從以下網址下載對應的 Driver
      googlechromelabs.github.io/chrome-for-testing/

  • @xujason4607
    @xujason4607 2 роки тому +1

    一切都很好,就是更新太慢了。哈哈。加油,彭彭老师!

  • @蒂蒂-f7o
    @蒂蒂-f7o 2 роки тому

    謝謝彭彭老師

  • @obba_qdcgo
    @obba_qdcgo 6 місяців тому

    我不知道哪裡做錯了 但明顯跟教學15:39畫面 不一樣的地方是我的fome並不是紫色、options.chrome_executable_path是呈現藍色,然後嘗試打開網頁哪這個指令python selenium-start.py什麼都不會顯示...

    • @archer885
      @archer885 Місяць тому

      有沒有可能你真的把from打成你上面的fome

    • @obba_qdcgo
      @obba_qdcgo Місяць тому +1

      是的

  • @jasonhuang9669
    @jasonhuang9669 Рік тому +1

    老師你好,Chrome Driver跟 Python Selenium都安裝完了,但程式重複打了5-6次都還是跳出這個:
    SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape
    也有試過簡化的程式,請問是哪邊出錯了呢

    • @陳豪駿-s4y
      @陳豪駿-s4y Рік тому +2

      可以嘗試把chromedriver的網址路徑的\改成\\

    • @cwpeng-course
      @cwpeng-course  Рік тому

      感謝 @user-pb3nf2hy3p 分享 :)

  • @imbucky1724
    @imbucky1724 2 роки тому +1

    老師請問一下,我在VS code 安裝 selenium輸入 pip install selenium
    卻無法安裝成功,它顯示
    ERROR: Could not install packages due to an OSError: [WinError 5] 存取被拒。: 'c:\\programdata\\anaconda3\\lib\\site-packages\\certifi-2020.12.5-py3.8.egg-info\\dependency_links.txt'
    Consider using the `--user` option or check the permissions.
    想請問能有辦法解決嗎@@ 有刪掉重載過了還是一樣

    • @cwpeng-course
      @cwpeng-course  Рік тому

      試著用系統管理員的身份打開 VS Code 或者 cmd 命令列工具,再執行指令安裝。

  • @巨錘瑞斯-p3i
    @巨錘瑞斯-p3i 2 роки тому

    老師,我是window的電腦,我也把所有程式打上去了,我也確定把chromedriver放在跟py檔同一個資料夾了。但還是出現[ERROR2] NO such file or directory 想請問有甚麼辦法解決

    • @翁育瑜
      @翁育瑜 2 роки тому

      我也是同樣問題

    • @cwpeng-course
      @cwpeng-course  2 роки тому

      這個和 Python 程式的執行路徑有關。通常是一開始安裝 Python 的時候有 Add Python to Path,然後執行的時候請先打開專案資料夾,然後直接輸入 python 檔案名稱,來執行程式。

    • @巨錘瑞斯-p3i
      @巨錘瑞斯-p3i 2 роки тому

      @@cwpeng-course 老師,請問您的意思是我的chromedriver的路徑沒有被python搜尋到嗎?那我import sys 並且把chromedriver的路徑加入,還是不能用。
      錯誤訊息是:
      DeprecationWarning: executable_path has been deprecated, please pass in a Service object
      driver=webdriver.Chrome(path)

    • @吳萱-w9r
      @吳萱-w9r Рік тому

      一開始也是相同問題,後來改變執行方式,原本用老師的python+檔名,後來按視窗右上角的執行符號就可以了,但老師的視窗好像沒有這個符號

  • @雪狼-q7q
    @雪狼-q7q 7 місяців тому +1

    老師我想問,我安裝完後執行出現No module named 'selenium',但我確實有安裝到。

    • @cwpeng-course
      @cwpeng-course  5 місяців тому

      要看看是否使用了虛擬環境或其他 Python 相關工具的設定影響到你目前程式的執行環境~

  • @yuchen3098
    @yuchen3098 2 роки тому +1

    請問老師為何會出現這狀況呢?
    ImportError: cannot import name 'webdriver' from partially initialized module 'selenium' (most likely due to a circular import) (/Users/chenguanyu/my_projects/selenium learning/selenium.py)
    chromedriver有和檔案放在一起

    • @cwpeng-course
      @cwpeng-course  2 роки тому +3

      自己的程式檔案不要叫做 selenium.py 會和套件名稱產生衝突。

  • @garyhuang9705
    @garyhuang9705 Рік тому +1

    請問老師為甚麼我把Chromedriver 解壓縮後放入專案資料夾了,但是VS Code中沒有出現,導致無法下一步

    • @cwpeng-course
      @cwpeng-course  Рік тому

      VS Code 要先從主選單的【檔案】中選開啟資料夾,把專案資料夾打開,或者就是要確認是否真的放進去了。

    • @garyhuang9705
      @garyhuang9705 Рік тому +1

      @@cwpeng-course 謝謝老師,我成功找到了,但是照寫範例程式中出現以下錯誤,
      File "C:\Users\ibsen\python_traning\practice14.py", line 9
      options.chrome_executable_path="C:\Users\ibsen\python_traning\chromedriver.exe"
      ^
      SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape
      PS C:\Users\ibsen\python_traning> python practice14.py
      求解,感恩~

    • @garyhuang9705
      @garyhuang9705 Рік тому

      我在執行檔入徑把\改成\\,成功執行了

    • @cwpeng-course
      @cwpeng-course  Рік тому

      @@garyhuang9705 讚讚,感謝分享,有成功就好 :)

    • @falling_in_love_C
      @falling_in_love_C Рік тому

      @@garyhuang9705感謝,這邊的問題和你一樣,也成功執行

  • @iqsa021s
    @iqsa021s Рік тому

    15:53 老師 我發現 我把driver.close() 註解掉後,執行程式 網頁也是會自動關掉耶~ 請問是什麼原因~ 謝謝

    • @cwpeng-course
      @cwpeng-course  Рік тому

      前面的設定加上 options.add_experimental_option("detach", True) 試試看。

    • @dixonxu6497
      @dixonxu6497 4 місяці тому

      from selenium import webdriver
      from selenium.webdriver.common.keys import Keys
      from selenium.webdriver.common.by import By
      from selenium.webdriver.chrome.options import Options
      from selenium import webdriver #從library中引入webdriver
      options=Options()
      options.add_experimental_option("detach", True) #防止開啟網頁後關閉網頁
      driver = webdriver.Chrome(options=options)
      driver.get('www.google.com.tw/')
      我試驗這樣是可行的, 請試試看

  • @darknight8815
    @darknight8815 2 роки тому +2

    請問老師可以做個貪吃蛇的小遊戲嗎?

    • @cwpeng-course
      @cwpeng-course  2 роки тому

      感謝建議,讓我考慮看看 XDDDD

  • @吳博宇-x9f
    @吳博宇-x9f 7 місяців тому

    想問一下 Chrome Driver的版本現在好像很缺 像我現在是124版,但官網上好像只有123 125 126 就是沒有124;公司電腦是109 但舊版本只到105,請問有差嗎? 我剛剛下載了125版,可以跑,只是會有警語,這樣會有甚麼問題嗎? 謝謝幫忙

  • @wukevin4412
    @wukevin4412 2 роки тому

    讚啦..等好久了~

  • @陳昱誠-f4g
    @陳昱誠-f4g 2 роки тому +2

    方便知道老師使用之版本嗎
    測試 3.9.13 一樣會報錯呢
    PS D:\Training\Codes\Python> [1272:6816:0706/203154.392:ERROR:device_event_log_impl.cc(214)] [20:31:54.391] USB: usb_device_handle_win.cc:1048 Failed to read descriptor from node connection: 連結到系統的某個裝置失去作用。 (0x1F)[1272:6816:0706/203154.394:ERROR:device_event_log_impl.cc(214)] [20:31:54.394] Bluetooth: bluetooth_adapter_winrt.cc:1074 Getting Default Adapter failed.

    • @cwpeng-course
      @cwpeng-course  2 роки тому +2

      我也不太確定這是怎麼回事,查了一下資料,或許試試看把程式簡化成:
      from selenium import webdriver
      from selenium.webdriver.chrome.options import Options
      driver=webdriver.Chrome()
      driver.get("www.google.com/")
      driver.close()
      不要自己去做 Options 的設定,讓它去抓預設值。

    • @陳昱誠-f4g
      @陳昱誠-f4g 2 роки тому +2

      @@cwpeng-course 我發現是我要將Python加入環境變數內 就可以work了
      我有嘗試重裝Python Add Path 感謝老師

    • @cwpeng-course
      @cwpeng-course  2 роки тому +1

      @@陳昱誠-f4g 讚讚,有解決就好 :)

    • @龍蝦蝦-l9j
      @龍蝦蝦-l9j 2 роки тому +1

      @@陳昱誠-f4g 請問具體來說是怎麼做呢 ? 我有嘗試重裝python並勾選add path但還是會出現這個錯誤提示,已經確認過環境變數有pyhton的路徑了

    • @陳昱誠-f4g
      @陳昱誠-f4g 2 роки тому +2

      @@龍蝦蝦-l9j 我是拿安裝檔先解除安裝 (當然你也可以用指令下uninstall)再重新官網載最新3.10重裝,確認環境變數沒有一些複雜python路徑 列表最上面確實是我剛剛載的x:/py310/scripts/那個路徑 確認Python - - version 結果真的是3.10 應該就醬

  • @mark69064
    @mark69064 Рік тому +1

    實際操作馬上擷取到"是不是機器人"的頁面,笑死我了XDD

  • @tim9728
    @tim9728 2 роки тому +1

    老師請問可以教pygame嗎?

  • @AndyHou
    @AndyHou 2 роки тому

    敲碗求下一集

  • @chiuu9413
    @chiuu9413 2 роки тому

    老師 我的VSCODE程式打開 沒有您左邊那排專案耶

    • @chiuu9413
      @chiuu9413 2 роки тому

      是跳過建立專案檔的步驟了嗎

    • @cwpeng-course
      @cwpeng-course  Рік тому

      要先建立專案資料夾再打開。

  • @李小姐-m6t
    @李小姐-m6t Рік тому

    彭彭老師可以出Appium的嗎?
    APP的自動化測試

    • @cwpeng-course
      @cwpeng-course  Рік тому

      謝謝你的建議,我會考慮看看的 :)

  • @user-du8ep5wt1j
    @user-du8ep5wt1j 2 роки тому

    想請問這個是什麼意思"selenium" is not accessedPylance
    Import "selenium" could not be resolved from sourcePylance
    我是用vscode

    • @cwpeng-course
      @cwpeng-course  2 роки тому

      你用了一個叫做 Pylance 的 VS Code 擴充套件,他會幫你檢查程式問題但不一定都正確,程式能正常運作就代表你的程式沒問題。

  • @collyyang9664
    @collyyang9664 Рік тому

    謝謝老師

  • @GNSSA6213
    @GNSSA6213 2 роки тому

    謝謝老師,請問儲存位置可以更改嗎?

  • @zhijwu4624
    @zhijwu4624 Рік тому

    老師 我的報錯是 Message: Service chromedriver unexpectedly exited. Status code was: -6 請問是甚麼意思

    • @cwpeng-course
      @cwpeng-course  Рік тому

      只有這一行我也無法判斷具體的原因,有沒有更多錯誤訊息或者是程式碼分享出來看看 ~

  • @coolman35
    @coolman35 2 роки тому

    我的chrome 瀏覽器是64bit window版本, 請問可以怎樣做?

    • @cwpeng-course
      @cwpeng-course  2 роки тому

      一樣哦,就去下載 windows 版本的 driver 來使用就可以了,它只有一種而已。

  • @helena0116
    @helena0116 2 роки тому

    請問我想要網址關掉後又自動點開的話,這樣程式要怎麼寫?

    • @cwpeng-course
      @cwpeng-course  2 роки тому +1

      driver.get() 多寫幾次,其實就是不斷的重新載入網頁了。

  • @gary12216
    @gary12216 2 роки тому +1

    彭彭老師好,剛好前幾天用臉書請教您一個selenium的問題,最近就出了這個教學! 若您有空,再去陌生訊息裡面替我解惑 感激不盡m(__ )m

    • @cwpeng-course
      @cwpeng-course  2 роки тому

      很高興剛好對上你的需求,之後還會有一系列的內容。會建議您有問題直接透過留言發問,因為我這邊的訊息很多,必須有規則的處理事情才不容易出狀況,在 UA-cam 上的事情就在 UA-cam 上處理這樣。

  • @謝佳璋-z7d
    @謝佳璋-z7d Рік тому +1

    自己版本為116但官方只提供到114 請問怎麼辦

    • @cwpeng-course
      @cwpeng-course  Рік тому

      沒辦法,建議就安裝官方有支援的版本來處理 ~

  • @陳立杰-r1h
    @陳立杰-r1h 10 місяців тому +1

    這部影片是不是要放進Python 資料分析、數據分析的播放清單啊?

  • @rixiang
    @rixiang 2 роки тому

    您好,我已经把这个系列全部的看了一次,有关的操作也打了几片(我需要的),我现在想达到这个要求,就是当手机上的屏幕,出现相关的数字,或者的文字(这些自己设置),可以发出声音提醒,手机是安卓的,我不清楚怎么做,请给一个指导。手机屏幕在某个app上,出现相关的文字,数字,就给一个提醒。感谢您能给我回复。我已经迷茫了好久了。谢谢您了

    • @cwpeng-course
      @cwpeng-course  2 роки тому +1

      你要解决的问题其实距离基础还蛮遥远的,可能得更近一步定义你所谓的萤幕上的文字是网页呢还是原生桌面上的,解法会很不同。所以可能会需要找专业人士仔细咨询。

    • @rixiang
      @rixiang 2 роки тому

      @@cwpeng-course 行吧。我怎么感觉还好吧。并不是很遥远。我用的是opencv tesseract 好像就比较容易解决,先跑起来再说。不知道您给我什么意见指导一下。感谢🙏。

  • @mingweiluo1761
    @mingweiluo1761 2 роки тому

    感谢鹏鹏老师的教程。我想请问一下,Selenium怎么可以避开bot detection?

    • @cwpeng-course
      @cwpeng-course  2 роки тому

      理由很单纯,Selenium 完全是透过浏览器来进行网页操作,对于网站后端来说等同于一般使用者在使用浏览器,因此难以辨认这是否是一个 Bot。

    • @mingweiluo1761
      @mingweiluo1761 2 роки тому +1

      @@cwpeng-course 谢谢老师。我在用Selenium的时候,有的时候会被辨认为Bot。比如北美这边的一些房产网站。

    • @cwpeng-course
      @cwpeng-course  2 роки тому

      @@mingweiluo1761 可以试着控制连线的速率,不要全速去执行,让每次连线都间隔一段乱数的时间。更进阶一点的就是动态变换 IP 地址,但这个就不是单纯写程式能解决的。

    • @mingweiluo1761
      @mingweiluo1761 2 роки тому +1

      @@cwpeng-course 谢谢彭彭老师,我去尝试一下。

  • @yellowwhitetip
    @yellowwhitetip Рік тому

    一直出現
    TypeError: 'module' object is not callable
    找了好久才發現
    driver=webdriver.Chrome(options=options)
    這行Chrome的C沒有大寫 :O

  • @minghunghsia
    @minghunghsia 2 роки тому

    為什麼其他的網頁都可以,中國信託網頁會顯示系統忙碌中 ....................求解 (哭哭 ,感謝彭彭大大selenium 教學

    • @cwpeng-course
      @cwpeng-course  2 роки тому +1

      XDDDD 試著找找看如何讓 Selenium 等待一段時間後,再抓取資料,我會在後續的教學中多提一些可能的狀況 ~

  • @joshuachen819
    @joshuachen819 Рік тому +1

    新版的selenium一堆東西直接不一樣 連chatgpt都不能問了 哭阿

    • @cwpeng-course
      @cwpeng-course  Рік тому

      拍拍,建議多參考官方的文件嘍 ~

  • @0scarymoon04
    @0scarymoon04 2 роки тому

    酷~~~企鵝

  • @nini_li1991
    @nini_li1991 2 роки тому +1

    謝謝彭彭老師