Получить текст из имени тега в python селен - PullRequest
0 голосов
/ 29 апреля 2020

Я пытаюсь узнать что-то новое для себя. Это python селен, и это код, который я пытаюсь получить название статьи

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import time

PATH = "C:\Program Files (x86)\chromedriver.exe"
driver = webdriver.Chrome(PATH)
driver.get("https://techwithtim.net")

search = driver.find_element_by_name("s")
search.send_keys("test")
search.send_keys(Keys.RETURN)

try:
    main = WebDriverWait(driver, 20).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_tag_name("a")[0]
        #print(header.get_attribute('href'))
        print(header.text)

finally:
    time.sleep(5)
    driver.quit()

Код работает хорошо при извлечении атрибута href, но не работает для. текст, как я получил пустые строки вместо заголовков статей. Можете ли вы подсказать мне, как это исправить?

1 Ответ

1 голос
/ 29 апреля 2020

Вы имеете в виду

  print(header.get_attribute('innerHTML'))

Чтобы заменить знак амперсанда, попробуйте

print(header.get_attribute('innerHTML').replace('&', '&'))

Или просто используйте свойство innerText

 print(header.get_attribute('innerText'))

Или свойство textContent

 print(header.get_attribute('textContent'))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...