在Python中使用Selenium抓取无限滚动期间发生StaleElementReferenceException

时间:2016-11-11 07:48:24

标签: python-2.7 selenium-webdriver web-scraping infinite-scroll

我正在尝试向下滚动infinite scroll page并获取新闻链接。问题是当我向下滚动页面100次,并且我试图获取链接时,Python发出了一个错误,上面写着:“StaleElementReferenceException:Message:stale element reference:element not not attached to page document”。我认为它是因为页面得到更新,滚动页面不再可用。这是我用Selenium Webdriver滚动页面的代码:

import urllib2
from bs4 import BeautifulSoup
from __future__ import print_function
from selenium import webdriver    #open webdriver for specific browser
from selenium.webdriver.common.keys import Keys   # for necessary browser action
from selenium.webdriver.common.by import By    # For selecting html code
import time   

driver = webdriver.Chrome('C:\\Program Files  (x86)\\Google\\Chrome\\chromedriver.exe')
driver.get('http://seekingalpha.com/market-news/top-news')
for i in range(0,100):
   driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
   time.sleep(15)
   URL = driver.find_elements_by_class_name('market_current_title')
print URL

以及获取网址的代码

for a in URL:
    links = a.get_attribute('href')
    print(links)

我想知道是否有任何解决方案可以解决此问题,或者可以使用请求库获取此特定页面的URL,因为我无法做到这一点。

0 个答案:

没有答案