#python-3.x #selenium
Вопрос:
from selenium import webdriver
driver = webdriver.Chrome()
driver.get('https://www.sap.com/about/events/2021-05-25-online-pe-payment-processing-sap.html')
element = driver.find_element_by_xpath("/html/body")
print(element.text)
driver.close()
<html>
<head>
<body>
<div>
<header>....<header>
<main>
<div>
<header> ... <header>
...
...
...
<footer>...<footer>
Есть ли решение с использованием selenium python для получения текста из main путем удаления текста из 1-го верхнего и нижнего колонтитулов. Я не могу использовать xpath для основного тега, потому что он различается на нескольких веб-сайтах.
Ответ №1:
попробуйте это вместо этого : (Use of split())
driver.get("https://www.sap.com/about/events/2021-05-25-online-pe-payment-processing-sap.html")
element = driver.page_source
remove_header = element.split("</header>")
remove_header_footer = remove_header[1].split("<footer>")
print(remove_header_footer[0])
Сначала я разделяю весь исходный код страницы </header>
и сохраняю его в a remove_header
. Теперь remove_header[1]
у источника страницы снова не будет заголовка, разделенного с помощью <footer>
, а оставшаяся строка теперь без header
и footer
Комментарии:
1. Я обновил приведенный выше код, дайте мне знать, работает ли он для вас
2. Итак, после удаления верхнего и нижнего колонтитулов, как получить текст только из тега <main>. Переменная элемента, которую вы написали, называется driver.page_source. Он извлекает весь источник страницы, а не текст.
3. Вы не можете получить текст от драйвера.страница _source
4. из selenium импортируйте веб-драйвер # Драйвер пути к Chrome = веб-драйвер. Хром (водитель).вам(» sap.com/about/events/… ) элемент = водителем.page_source remove_header = элементом.сплит(«</header>») remove_header_footer = remove_header[1].сплит(«<footer>») а = водителем.find_element_by_xpath(«/HTML-код/тела») печать(а.текста)
5. Из приведенного выше кода мне нужно получить только текст