селектор ответа разбивает содержимое на два разных значения - PullRequest
0 голосов
/ 20 июня 2020

Я пытаюсь очистить заголовки статьи с этой страницы - https://onlinelibrary.wiley.com/doi/full/10.1111/pcmr.12547

В "оболочке scrapy", если я запустил это response.css("h2.article-section__title::text").extract() Я получаю следующее output -

[' Efficacy of small MC1R‐selective ',
 '‐MSH analogs as sunless tanning agents that reduce UV‐induced DNA damage\n         ',
.....

Это происходит потому, что в HTML статья использует дополнительный тег курсива в заголовке.

<h2 class="article-section__title section__title section1" id="pcmr12547-sec-0002-title"> Efficacy of small MC1R‐selective <i>α </i>‐MSH analogs as sunless tanning agents that reduce UV‐induced DNA damage
         </h2>

Я могу попытаться исправить это с помощью код python, который объединяет значения до тех пор, пока не получит в конце '\ n'. Но есть ли способ исправить это с помощью scrapy или любого другого более чистого способа?

Способ, которым scrapy будет очищать значение вместе с тегами HTML (если есть) в нем или, лучше игнорировать теги, но получит ли текст внутри тега?

1 Ответ

1 голос
/ 22 июня 2020

Вы можете извлечь весь элемент HMTL с помощью:

html_title = response.css(".article-section__title").get()

Затем вы можете превратить результат в обычный текст с помощью чего-то вроде html -text :

title = html_text.extract_text(html_title)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...