Попытка вытащить текстовую строку из блока HTML - PullRequest
1 голос
/ 29 апреля 2020

Я пытаюсь извлечь текстовую строку (заголовок статьи) из фрагмента HTML. В данном случае это «Журналист, якобы шпионящий за Zoom Встречами соперников в смешно тупых путях».

Проблема в том, что в названии нет идентификаторов, которые я вижу. Он находится в нескольких местах в HTML, но у div, в которых он находится, нет стабильных имен.

Я пытался:

var url = $(uCW).find('[href^="https://l.facebook"]').text();

Но получаю неправильный кусок текста. (uCW - это имя переменной, которую я дал div, в котором все это находится - он отлично работает для получения другой информации здесь). На самом деле, мне трудно понять, как его выбрать - теоретически я мог бы указать точных детей, в которых все находится, но дети сильно меняются, и я хотел бы использовать более стабильный метод.

image

1 Ответ

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

Вы можете получить текст, например, выбрав href, начинающийся с l.facebook, который содержит элемент с именем класса accessible_elem, используя :has(), так как этот элемент содержит текст.

 var copy = $(uCW).find('[href^="https://l.facebook"]:has(".accessible_elem")')
            .find(".accessible_elem").text();

Обновить : Как указано в комментарии, это не относится к требуемому тексту. Вместо этого можно прочитать атрибут aria-label этой ссылки, поскольку он содержит правильный текст:

 var copy = $(ucw).find('[href^="https://l.facebook"]:has(".accessible_elem")').attr("aria-label");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...