看板 Python 關於我們 聯絡資訊
最近在用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