作者utap2001 (尋找一個漫長的答案 )
看板Python
標題[心得] 用selenium爬網頁時.click()失效的解法
時間Sat Jan 26 17:01:28 2019
最近在用selenium爬網頁,結果就碰到有一些網頁,.click()的方法沒有作用
有上網查到了一些解法,大概包括兩種,第一種就是不要用click,改用sendkey的方式se
ndkey,送出sendkey.ENTER或.RETURN
第二種方法就是用JavaScript的方式來點擊,execute_script(js)js
不過很可惜的,這兩種方法都沒效,你遇到的狀況可能遠比這些復雜,所以在我的情況,
我是怎麽解決網頁click方法失效的問題呢,我是換瀏覽器之後才解決的,本來是用chrome,後來用IE
我後來發現有些古董級的網站,他們的js真的要IE才能夠完全支援,所以有時候標簽失效
的問題,可能就是因為網站對瀏覽器的支援不夠,當然換IE之後也有新的麻煩,比如說設
定環境變數,要改很多設定等等,不過至少解決了元件失效的問題
雖然換IE驅動也是蠻麻煩的,可是這也是selenium的一種優勢,因為他所有的瀏覽器都
支援
另外一個解法就是下載pyautoGUI或是sikuli,直接模擬滑鼠去點擊,因為pyautogui或是
sikuli是屬於比較前端的工具,可以模擬滑鼠的行為
其他像是selenium或是pywinauto,swapy,是比較偏向後端的工具,我以前覺得後端的工
具比較好用,可是實際上也並不完全是這樣,兩種工具交錯著一起用,其實可以最大程度
解決你遇到的各種奇怪的問題
我想Python最近會變這麽紅,除了機器學習人工智慧之外,很大一部分應該也跟爬蟲,自
動化有關
還有順便問一下,python在WINDOWS視窗程式底下,如果想要截取視窗欄位裏面的資料,
有沒有像beautifulsoup一樣的套件?
因為我目前在用pyautogui或是sikuli,他們好像都是用螢幕截圖的方式,似乎沒有辦法
把資料存取出來存到變數裏面
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 42.73.171.92
※ 文章網址: https://www.ptt.cc/bbs/Python/M.1548493290.A.788.html
推 rexyeah: 直接發req或看要call什麼func比較快,不用模擬click01/26 18:31
的確,req如果用的好,真的可以解決很多問題
不過有時候就是遇到很麻煩的狀況,比如說像日期選單用req就很麻煩,有的網頁查詢,結束日都會固定是今天的日期,如果起始日也可以傳一個固定參數,比如說固定結束日減一個月,那這樣就好解很多
※ 編輯: utap2001 (114.44.89.16), 01/27/2019 01:42:08
→ TakiDog: click 失敗很大原因geckodriver,while true一下就解了 01/27 04:20
→ TakiDog: ,用到模擬鼠鍵根本就可以把程式搬上腳本程式上了吧,re 01/27 04:20
→ TakiDog: quests才是爬資料的真理 01/27 04:20
推 froce: 可以用requests絕對不要用selenium,那穩定度完全不一樣 01/31 14:33
→ froce: 像我就常用selenium先想辦法處理掉JS rending的問題,再抓 01/31 14:35
→ froce: 到網址規律去做下載動作,寧願登入2次。 01/31 14:36