Я хочу извлечь текст из HTML-страницы с узлом <article>
, но внутри этого узла нет стандартного формата узлов. Я могу извлечь полный текст в <article>
, однако мой вывод не совпадает с отображением на странице HTML. Например, ниже приведен HTML-код для извлечения -
<article>
<div> This is first Paragraph </div>
<div> This is second Paragraph
<div> This is third paragraph  
<span> 3rd para continue </span>
</div>
</div>
</article>
Вот что у меня в коде.
xxx = response.xpath("//article/div | //article/ul | //article/ol | //article/p")
content = ""
for eachLine in warningLetterlines:
tmp = eachLine.xpath('.//text()').extract()
content += "".join( i.replace(u'\xa0', u'') for i in tmp ) + "\n"
Этот код выводится как -
This is first paragraph
This is second paragraphThis is third paragraph3rd para continue
Тем не менее, я хочу -
This is first paragraph
This is second paragraph
This is third paragraph 3rd para continue
Я попытался добавить некоторую пользовательскую логику для присоединения к списку с помощью \ n или "" на основе внутреннего узла, но, как я уже упоминал, моя страница HTML не имеет общего формата, поэтому мой код прерывается всякий раз, когда он видит что-то новое. Я также подумал о том, чтобы получить список имен узлов и присоединить его на основе имени узла (например, добавить «\ n» для <div>
/ <p>
и «» для <span>
/ <b>
и т. Д.), Но длина этих двух списков не одинакова. Ниже приведены некоторые страницы, которые я пытаюсь удалить - (Обратите внимание, что все 3 имеют разную HTML-разметку с узлом <article>
.
https://www.fda.gov/ICECI/EnforcementActions/WarningLetters/2017/ucm572086.htm https://www.fda.gov/ICECI/EnforcementActions/WarningLetters/2016/ucm503559.htm https://www.fda.gov/ICECI/EnforcementActions/WarningLetters/2013/ucm376390.htm
Я хочу вырезать эти страницы в том же текстовом формате, который отображается на странице. Я нашел онлайн конвертер html в текст, который дает мне желаемый результат, но я не уверен, как реализовать это самостоятельно.
Любой подход / помощь, пожалуйста? Я действительно застрял в этой проблеме.
Это онлайн-конвертер, если вы хотите посмотреть -
https://templates.mailchimp.com/resources/html-to-text/