最近,我一直在尝试使用Python和Selenium chromedriver进行Web Scraping和Crawling。 它是一个reddit页面,有线程,每个线程都有一个标题。单击标题时,它将转到该特定线程。该主题包含描述和内容。
我想做什么:
我已经能够获得标题,甚至可以达到点击我的标题的程度。但当它返回时,它在这一行给我一个错误:数据['title']。在点击并返回页面一次后,在步骤3中追加(title.text)。并返回一条错误消息,指出:“消息:陈旧元素引用:元素未附加到页面文档”
无法调试此问题,因为我对python很新。任何帮助将不胜感激。
以下是代码:
for i in range(0,3):
titles = []
titles = browser.find_elements_by_css_selector(".title.may-blank")
for title in titles:
i = i+1
try:
data['title'].append(title.text)
except KeyError:
data['title'] = [title.text]
title.click()
description = browser.find_element_by_css_selector(".usertext-body.may-blank-within.md-container")
print description.text
browser.execute_script("window.history.go(-1)")
button = browser.find_element_by_class_name("next-button")
button.click()
print data['title']
答案 0 :(得分:1)
每次导航到另一个页面时,您都需要找到元素。
我会稍微改变你的代码流程。不是点击标题,而是尝试获取href属性,然后导航到这些网址。
此外,我假设你通过Selenium来练习你的技能。如果没有,我建议Reddit API。