我正在使用windows8中的chrome webdriver开发python selenium。我面对一个page,它在使用ajax滚动时加载数据。 Link 1Link 2Link 3
谁能给我一条正确的道路吗。在
编辑--------
这是亚历克斯回答后我的部分代码
nam = driver.find_element(By.CLASS_NAME ,'_wu')
#get length of review
revcnt = driver.find_element(By.XPATH ,"//span[@class='_Mnc _yz']")
revcnt = int(revcnt.text.replace(" reviews","").strip())
print revcnt
# wait for reviews to appear
wait = WebDriverWait(driver, 10)
wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, "span.review-snippet")))
#reviews=[]
while True:
reviews = driver.find_elements_by_css_selector("div._ju")
if len(reviews)<revcnt:
driver.execute_script("arguments[0].scrollIntoView();", reviews[-1])
else:
driver.quit()
print len(reviews)
但是从while循环中逃出有问题!在
我试过了。在
做一个循环,每次迭代滚动到列表中最后一个“review”的视图(对我有用):
注意这里的循环是无止境的-您需要弄清楚如何退出循环。例如,您可以统计滚动到视图前后的评论数,如果没有加载更多的评论,则退出循环。或者,你可以检查旋转圈是否存在。一旦它没有显示在滚动-这意味着没有更多的评论加载左边。在
这里有一个方法可以检测到没有更多的评论可以加载-检查下一次滚动后评论对话框的滚动高度是否没有改变-这与人类检测它的方式很接近:
^{pr2}$我不喜欢这里有
time.sleep()
,希望你有更好的主意来解决这个问题。在相关问题 更多 >
编程相关推荐