Извлечь строку из HTML String - PullRequest
0 голосов
/ 04 марта 2020

Я хочу извлечь число из строки html (обычно я не знаю число).

Важнейшая часть выглядит следующим образом:

<test test="3" test="search_summary_figure WHR WVM">TOTAL : 286</test>
<tagend>

И я хочу извлечь "286". Я хочу сделать что-то вроде «начать после« L: »и остановиться до« <». Как я могу это сделать? Спасибо большое заранее. </p>

Ответы [ 5 ]

1 голос
/ 04 марта 2020

Если строка «TOTAL: число» уникальна, используйте регулярное выражение, чтобы сначала найти эту подстроку, а затем извлечь из нее число.

import re

string = 'test test="3" test="search_summary_figure WHR WVM">TOTAL : 286</test>'

reg__expr = r'TOTAL\s:\s\d+'  # TOTAL<whitespace>:<whitespace><number>
# find the substring
result = re.findall(reg__expr, string)
if result:

   substring = result[0]

   reg__expr = r'\d+'  # <number>
   result = re.findall(reg__expr, substring)
   number = int(result[0])

   print(number)

Здесь вы можете проверить свои собственные регулярные выражения https://regex101.com/

0 голосов
/ 04 марта 2020

Если ваша строка HTML это:

html_string = """<test test="3" test="search_summary_figure WHR WVM">TOTAL : 286</test>
<tagend>"""

Попробуйте это:

int(html_string.split("</test>")[0].split(":")[-1].replace(" ", ""))
0 голосов
/ 04 марта 2020

Вы можете использовать разбиение строк для извлечения строки «number» из всей строки HTML, например, такой (если предположить, что код HTML находится в переменной html_string):

num_string = html_string.partition ("TOTAL : ") [2] .partition (" <") [0] </p>

там вы получите num_string с числом в виде строки, а затем просто преобразуете его в целое число или что угодно. Имейте в виду, что это будет обрабатывать первое появление всего, что выглядит как «ВСЕГО: что-нибудь_ здесь <», поэтому вы хотите убедиться, что этот шаблон уникален. </p>

0 голосов
/ 04 марта 2020

Ниже вы можете попробовать следующее:

    line = "TOTAL : 286"
    if line.startswith('TOTAL : '):
        print(line[8:len(line)])

Вывод:

    286
0 голосов
/ 04 марта 2020

в вашем документе view.py вы можете попробовать это:

import re
my_string="TOTAL : 286"
int(re.search(r'\d+', my_string).group())

286

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