Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 19, 2019 00:24:42

Yana1990
Зарегистрирован: 2019-11-19
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

Опять текст между тегами...

Здравствуйте форумчане. Суть такова = есть html файл. В этом файле помимо всего прочего есть повторяющие парные значения
data-some=“тут набор цифр”
и затем идёт парой к нему
name-other=“тут две строки кириллицей” (могут быть символы разного регистра)

Задача такая.
Вынуть из этого файла парные значения. То есть значения из каждой data-some и каждой name-other, от кавычки до кавычки.

Со строками мало опыта. Как лучше сделать? Работать с файлом как с html или как с текстом. Я так понимаю что если как с html то надо что-то думать с beautifulsoup, а если как с текстом, то нужно использовать регулярные выражения. Что в том что в этом опыта мало…
Может есть какие то проще варианты?

Отредактировано Yana1990 (Ноя. 19, 2019 00:27:03)

Офлайн

#2 Ноя. 19, 2019 06:06:01

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  252  -
Профиль   Отправить e-mail  

Опять текст между тегами...

Yana1990
Может есть какие то проще варианты?
bs внутри все равно lxml использует насколько я помню.

На мой взгляд самый простой вариант с регулярными выражениями проще уж некуда.
 re.findall(r'data-some="(\d+)"',txt)
re.findall(r'data-some="([А-Яа-я \n]+)"',txt,flags=re.M)
Но с ними нет гарантии что вытащится то что надо во всех мыслимых случаях например наличие кавычек в вашей кириллице всякими спец буквами типа ио если кодировка utf, надо правильно кодировку указать при чтении и т.п..
Я рекомендую начать с изучения регулярных выражений.

Есть еще https://habr.com/ru/post/239081/
Это в тех случаях когда регулярки не справились и готового парсера под заданный синтаксис нет.



Отредактировано doza_and (Ноя. 19, 2019 06:15:02)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version