Я весь день искал этот день, не найдя ответа, поэтому извиняюсь заранее, если об этом уже ответили.
Я пытаюсь получить весь видимый текст с большого количества различных сайтов. Причина в том, что я хочу обработать текст, чтобы в конечном итоге классифицировать веб-сайты.
После нескольких дней исследований я решил, что Selenium - мой лучший шанс. Я нашел способ захватить весь текст с помощью Selenium, к сожалению, один и тот же текст захватывается несколько раз:
from selenium import webdriver
import codecs
filen = codecs.open('outoput.txt', encoding='utf-8', mode='w+')
driver = webdriver.Firefox()
driver.get("http://www.examplepage.com")
allelements = driver.find_elements_by_xpath("//*")
ferdigtxt = []
for i in allelements:
if i.text in ferdigtxt:
pass
else:
ferdigtxt.append(i.text)
filen.writelines(i.text)
filen.close()
driver.quit()
Условие if
внутри цикла for
- попытка устранить проблему получения одного и того же текста несколько раз - однако, она не работает, как планировалось, на некоторых веб-страницах. (он также замедляет script A LOT)
Я предполагаю, что причиной моей проблемы является то, что при запросе внутреннего текста элемента - я также получаю внутренний текст элементов, вложенных внутри рассматриваемого элемента.
Есть ли способ обойти это? Есть ли какой-то мастер-элемент, который я получаю из внутреннего текста? Или совсем другой способ, который позволил бы мне достичь моей цели? Любая помощь будет очень признательна, поскольку у меня нет идей для этого.
Изменить: причина, по которой я использовал Selenium, а не Mechanize и Beautiful Soup, - это то, что я хотел, чтобы текст, отложенный JavaScript,