慢慢滚动python selenium javascript

时间:2016-08-04 16:55:46

标签: javascript python selenium web-scraping

url = correct_url(url)
browser = webdriver.Chrome()
browser.get(url)
browser.find_element_by_xpath('//*[@title="New chat"]').click()
drawer_body = browser.find_elements_by_class_name('drawer-body')
browser.execute_script('arguments[0].scrollTop = arguments[0].scrollHeight', drawer_body)
  

获取'div'元素,它有一个列表并将滚动

drawer_body = browser.find_elements_by_class_name('drawer-body')

  

下面一行滚动非常快并到达底部,但这不会加载数据。有什么方法可以慢慢滚动到drawer_body元素吗?。

browser.execute_script('arguments [0] .scrollTop = arguments [0] .scrollHeight',drawer_body)

我正在尝试使用python和selenium实现以下脚本。 http://ctrlq.org/code/19966-whatsapp-phone-numbers

2 个答案:

答案 0 :(得分:2)

大多数浏览器都支持空格键键作为向下滚动页面的键盘快捷键。使用此功能,您可以执行以下操作:

  1. 访问页面
  2. 解析到目前为止加载的内容
  3. 使用Selenium
  4. 模拟按空格键
  5. 等待2-3秒,直到加载更多数据
  6. 继续
  7. 还有一个提示:为避免陷入永久循环,您需要检查新加载的数据是否与按空格键之前的数据不同,否则脚本应该退出,因为没有要解析的新数据。

答案 1 :(得分:0)

试试这个

drawer_body = browser.find_elements_by_class_name('drawer-body')
location = drawer-body.location
for i in range(location['x']//500):
    browser.execute_script('window.scrollBy(0, 500)')