selenium 将Selify输出打印为可读文本而不是HTML代码时出现的问题

s3fp2yjn  于 2022-11-10  发布在  其他
关注(0)|答案(1)|浏览(144)

我正在努力学习如何使用 selenium 来抓取网络,并且一直在看由Tech With Tim制作的YouTube系列剧。我无法使用Selify将我的信息输出显示为文本,只能显示为Html代码。
我试过这个

driver.get("https://www.techwithtim.net/")

search = driver.find_element("name","s")
search.send_keys("test")
search.send_keys(Keys.RETURN)

try:
    main = WebDriverWait(driver, 10).until(
        EC.presence_of_element_located((By.ID, "main"))
    )
    articles = main.find_elements(By.TAG_NAME, "article")
    for article in articles:
        header = article.find_elements(By.CLASS_NAME, "entry-summary")
        print(header.text)

finally:
    driver.quit()

我原本希望输出的是类名条目摘要下的所有文本,但我得到的却是错误:

AttributeError                            Traceback (most recent call last)
Cell In [70], line 19
     17     articles = main.find_elements(By.TAG_NAME, "article")
     18     for article in articles:
---> 19         header = article.find_elements(By.CLASS_NAME, "posted-on").text
     20         print(header)
     24 finally:

AttributeError: 'list' object has no attribute 'text'

我知道.text与将HTML转换为文本有关,但我一直无法解决这个问题。任何帮助都将不胜感激。

roejwanj

roejwanj1#

您可能需要在那里使用find_element,而不是find_elements
具体如下:

articles = main.find_elements(By.TAG_NAME, "article")
for article in articles:
    header = article.find_element(By.CLASS_NAME, "entry-summary")
    print(header.text)

相关问题