Member 13424161 Ответов: 0

Python webscraping, извлечение контента за пределами тегов span


- Привет! Я пытаюсь создать простой скрипт Python webscraping для извлечения содержимого за пределами тегов span. HTML, с которым я работаю, очень прост, в основном состоит из одного тега body и нескольких тегов span.

<body>
<span id="line2"></span>NUM=2039
<span id="line3"></span>NAME0=Record_Continuously/2018-04-24/71/MP_2018-04-24_10-27-02_60.mov
<span id="line4"></span>SIZE0=15747369
<span id="line5"></span>NAME1=Record_Continuously/2018-04-24/71/MP_2018-04-24_10-26-01_60.mov
<span id="line6"></span>SIZE1=15725278


Какой-нибудь
Я хочу извлечь MP_2018-04-24_10-26-01_60.mov файлы в виде текста. Любая обратная связь приветствуется!

Что я уже пробовал:

from lxml import html
import requests

page = requests.get('http://192.168.1.99/form/getStorageFileList')
tree = html.fromstring(page.content)
clips = tree.xpath('//span[@="NAME"]/text()')
print(clips)


Мой выход-это [] и ничего больше. Я предполагаю, потому что содержимое внутри тега span-это пробелы. Должен ли я попытаться извлечь тег тела вместо этого? Заранее спасибо за любые идеи или отзывы!

Richard Deeming

Это тот самый HTML, который вы извлекаете, или опечатка в вашем вопросе? Ни один текст не находится внутри а <span>.

Member 13424161

Извините, что не совсем ясно выразился. Это не опечатка. HTML, который я пытаюсь получить, состоит только из тегов body и span, файлы .mov, которые я хочу получить, расположены вне этих тегов span. Когда я извлекаю содержимое тега Body, он, очевидно, выводит весь HTML-код и не является тем, что я ищу. Я ищу какой-нибудь подстрекатель, чтобы получить только MP_2018-04-24_10-26-01_60.mov файлы из HTML.

Richard Deeming

Это очень больно. Предполагая, что ваш HTML-парсер поддерживает его, вам нужно будет получить следующий родственный узел после соответствующего промежутка.

Что-то вроде этого вероятно работа:

clips = tree.xpath('//span[@id="line2"]/following-sibling::*[1]/text()')

Member 13424161

Извините за поздний ответ! Мне пришлось поговорить с производителем о том, как обойти их аутентификацию, я продолжал получать ошибку 401 с любыми сценариями, которые я пробовал. Теперь я собираюсь попробовать то, что вы предложили, спасибо!

0 Ответов