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 с любыми сценариями, которые я пробовал. Теперь я собираюсь попробовать то, что вы предложили, спасибо!