看板 Python 關於我們 聯絡資訊
想請教一些問題,我想用Selenium抓小米官網的經銷商, 希望抓完後,用裡頭的資料做成地圖 爬取過程中卻不時出現StaleElementReferenceException,出現頁數不定, 快的話第2頁出現,幸運的話40、50頁後出現, 我猜可能是元素載入不完全,於是想等「下一頁」元素可以點選後再執行後面的動作, 甚至我把WebDriverWait的delay值設為200 問題一:我設的WebDriverWait().until()似乎沒有發揮作用 我以例外處理方式把無法正常爬取的頁數print出來, 這個例外處理很粗糙,但如果不使用例外處理, 程式只要遇到StaleElementReferenceException就會中斷, 而我發現,我print出來的無法正常處理的頁數有數百頁 實際用Excel分析重複筆數後發現, 我抓到的很多變數address根本重複,甚至可以重複數十筆 問題二:我搞不太懂哪個動作讓我抓到了重複的資料 難道是頁面未更新、導致定位出來的元素仍是上個網頁的資料嗎? 還是說我遇到反爬了? 這整個程式我自己覺得好像沒什麼問題,但過程中還蠻跌跌撞撞的 因為我的程式碼會超過批踢踢的畫面長度,造成閱讀不便跟理解困難 所以我放在雲端連結,若這樣做反而讓大家更不方便在此道歉 https://1drv.ms/t/s!AuQERVaW1DVCgv8sqCcfl9FkaayNGg -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 59.115.123.83 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1550577930.A.5C4.html
s860134: 問題在例外處理 當發生時你的動作是什麼?而你想怎麼處理 02/19 20:39
rexyeah: selenium太慢了 我看他request url是有規則 02/19 21:19
utap2001: 我最近用selenium也是出現很多錯誤,比如說index out o 02/25 19:06
utap2001: f range,用到真的很想翻桌 02/25 19:06
utap2001: 很多網頁的元素都抓不到,不知道driver有什麽問題 02/25 19:08