Raspando el sitio web de desplazamiento infinito con Selenium en Python

Me gustaría desechar el contenido de este sitio web que tiene desplazamiento: http://stocktwits.com/symbol/AAPL?q=AAPL

Encontré esta respuesta para una pregunta similar en Stactoverflow: raspar sitios web con desplazamiento infinito

Y aquí está el código copiado desde allí:

from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import Keys from selenium.webdriver.support.ui import Select from selenium.webdriver.support.ui import WebDriverWait from selenium.common.exceptions import TimeoutException from selenium.webdriver.support import expected_conditions as EC from selenium.common.exceptions import NoSuchElementException from selenium.common.exceptions import NoAlertPresentException import sys import unittest, time, re class Sel(unittest.TestCase): def setUp(self): self.driver = webdriver.Firefox() self.driver.implicitly_wait(30) self.base_url = "https://twitter.com" self.verificationErrors = [] self.accept_next_alert = True def test_sel(self): driver = self.driver delay = 3 driver.get(self.base_url + "/search?q=stckoverflow&src=typd") driver.find_element_by_link_text("All").click() for i in range(1,100): self.driver.execute_script("window.scrollTo(0, document.body.scrollHeight);") time.sleep(4) html_source = driver.page_source data = html_source.encode('utf-8') if __name__ == "__main__": unittest.main() 

Ahora, en lugar de twitter, quiero eliminar el sitio web de Stocktwits (el enlace está arriba).

He modificado el código anterior a esto:

 from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import Keys from selenium.webdriver.support.ui import Select from selenium.webdriver.support.ui import WebDriverWait from selenium.common.exceptions import TimeoutException from selenium.webdriver.support import expected_conditions as EC from selenium.common.exceptions import NoSuchElementException from selenium.common.exceptions import NoAlertPresentException import sys import unittest, time, re class Sel(unittest.TestCase): def setUp(self): self.driver = webdriver.Firefox() self.driver.implicitly_wait(30) self.base_url = "http://stocktwits.com/symbol/AAPL?q=AAPL" self.verificationErrors = [] self.accept_next_alert = True def test_sel(self): driver = self.driver delay = 3 driver.get(self.base_url) driver.find_element_by_link_text("All").click() for i in range(1,100): self.driver.execute_script("window.scrollTo(0, document.body.scrollHeight);") time.sleep(4) html_source = driver.page_source data = html_source.encode('utf-8') if __name__ == "__main__": unittest.main() 

Pero cuando ejecuto el código me sale este error:

 NoSuchElementException: Message: Unable to locate element: {"method":"link text","selector":"All"} 

Aprecio cualquier ayuda para descubrir qué está mal.

Parece que el problema está en esta línea:

 driver.find_element_by_link_text("All").click() 

Está esperando un elemento con el texto de enlace "All" pero no existe ninguno.