首页 > 解决方案 > 是否有一致的方法可以使用硒从 quora 网页中获取第一个答案?

问题描述

所以我想从给定的 quora 网页中抓取第一个答案。我写了一个硒代码来做同样的事情。但它给出的结果不一致,有时它会从页面上刮掉第一个答案,但有时它会刮掉第二个或第三个答案。不知道为什么会发生这种情况,有没有办法解决它?

driver.get(('https://www.quora.com/What-is-football'))
questions = driver.find_elements_by_class_name("ui_qtext_expanded")

l = len(questions)

if l == 0:
    btn = driver.find_element_by_class_name("ui_button_label")
    btn.click()
    driver.implicitly_wait(10)

    questions = driver.find_elements_by_class_name("ui_qtext_expanded")

for q in questions:
    print(q.text)



这是我正在使用的代码。当答案中没有阅读更多选项时,我发现答案具有“ui_qtext_expanded”类。否则它具有“ui_qtext_truncated_text”类,当我们点击阅读更多时,它会转换为“ui_qtext_expanded”。所以我总是通过类名“ui_qtext_expanded”来查找元素,如果答案已经阅读了更多选项,那么 questions 变量的长度将为 0,因此我们将执行 if 块。

这段代码给了我来自 quora 页面的第一个答案,但有时它给出了页面上的第二个或第三个答案。如何始终如一地在页面上获得第一个答案?

标签: pythonseleniumweb-scraping

解决方案


推荐阅读