想請教一些問題,我想用Selenium抓小米官網的經銷商,
希望抓完後,用裡頭的資料做成地圖
爬取過程中卻不時出現StaleElementReferenceException,出現頁數不定,
快的話第2頁出現,幸運的話40、50頁後出現,
我猜可能是元素載入不完全,於是想等「下一頁」元素可以點選後再執行後面的動作,
甚至我把WebDriverWait的delay值設為200
問題一:我設的WebDriverWait().until()似乎沒有發揮作用
我以例外處理方式把無法正常爬取的頁數print出來,
這個例外處理很粗糙,但如果不使用例外處理,
程式只要遇到StaleElementReferenceException就會中斷,
而我發現,我print出來的無法正常處理的頁數有數百頁
實際用Excel分析重複筆數後發現,
我抓到的很多變數address根本重複,甚至可以重複數十筆
問題二:我搞不太懂哪個動作讓我抓到了重複的資料
難道是頁面未更新、導致定位出來的元素仍是上個網頁的資料嗎?
還是說我遇到反爬了?
這整個程式我自己覺得好像沒什麼問題,但過程中還蠻跌跌撞撞的
因為我的程式碼會超過批踢踢的畫面長度,造成閱讀不便跟理解困難
所以我放在雲端連結,若這樣做反而讓大家更不方便在此道歉
https://1drv.ms/t/s!AuQERVaW1DVCgv8sqCcfl9FkaayNGg