Re: [问题] selenium页数未更新及重复笔数

楼主: rexyeah (ccccccc)   2019-02-19 21:40:14
with open("Mi_authorised_stores.txt",'a',encoding='utf8') as file:
for i in range(1,817):
try:
myElem = ...
(...)
driver.find_element_by_css_selector('a.next').click()
except:
print(i)
为什么你的click不是在myElem上? 而是要再找一次?
另外,其实按下每次换页时request的网址是有规则的
page1:
https://store.mi.com/in/authorizedstore/getdata?jsonpcallback=authorized&
pageSize=8&pageNum=1&city=All%20cities&state=All%20states&_=1550582078453
虽然我没有去测试,但可以看到它是pageNum=1, 同理也可以看到pageNum=2 ...
devtool上看response也是json的格式。也许可以试试看直接request就好。
※ 引述《liquidbox (树枝摆摆)》之铭言:
: 想请教一些问题,我想用Selenium抓小米官网的经销商,
: 希望抓完后,用里头的资料做成地图
: 爬取过程中却不时出现StaleElementReferenceException,出现页数不定,
: 快的话第2页出现,幸运的话40、50页后出现,
: 我猜可能是元素加载不完全,于是想等“下一页”元素可以点选后再执行后面的动作,
: 甚至我把WebDriverWait的delay值设为200
: 问题一:我设的WebDriverWait().until()似乎没有发挥作用
: 我以例外处理方式把无法正常爬取的页数print出来,
: 这个例外处理很粗糙,但如果不使用例外处理,
: 程式只要遇到StaleElementReferenceException就会中断,
: 而我发现,我print出来的无法正常处理的页数有数百页
: 实际用Excel分析重复笔数后发现,
: 我抓到的很多变量address根本重复,甚至可以重复数十笔
: 问题二:我搞不太懂哪个动作让我抓到了重复的资料
: 难道是页面未更新、导致定位出来的元素仍是上个网页的资料吗?
: 还是说我遇到反爬了?
: 这整个程式我自己觉得好像没什么问题,但过程中还蛮跌跌撞撞的
: 因为我的程式码会超过批踢踢的画面长度,造成阅读不便跟理解困难
: 所以我放在云端连结,若这样做反而让大家更不方便在此道歉
: https://1drv.ms/t/s!AuQERVaW1DVCgv8sqCcfl9FkaayNGg
作者: liquidbox (樹枝擺擺)   2019-02-20 12:01:00
好的,我试看看,谢谢说明

Links booklink

Contact Us: admin [ a t ] ucptt.com