Отфильтруйте HTML-тэги и объекты твердости в Python

Попробуйте это, а затем получите доступ к $ user по вашему мнению

public function update(UserUpdateRequest $request)
{
    $request->user()->update([
        'name' => $request->username,
    ]);

    $user = $request->user();

    Mail::to($request->user())
        ->send(new UserUpdated($user));

    return redirect()->route('account.index');
}

Вы не можете отправить $ request напрямую на ваш шаблон электронной почты, возможно, по этой причине вы не можете получить доступ к $ user

18
задан akraut 1 September 2008 в 05:25
поделиться

7 ответов

Используйте lxml, который является лучшей xml/html библиотекой для Python.

import lxml.html
t = lxml.html.fromstring("...")
t.text_content()

И если Вы просто хотите санировать HTML, смотрят на модуль lxml.html.clean

40
ответ дан 30 November 2019 в 05:50
поделиться

Используйте BeautifulSoup! Это идеально подходит для этого, где Вы имеете входящую разметку сомнительного достоинства и должны получить что-то разумное из него. Просто передача в оригинальном тексте, извлеките все строковые теги и присоединитесь к ним.

16
ответ дан 30 November 2019 в 05:50
поделиться

В то время как я соглашаюсь с Lucas, что регулярные выражения не все, что страшный, я все еще думаю, что необходимо пойти со специализированным синтаксическим анализатором HTML. Это вызвано тем, что стандарт HTML является достаточно волосатым (особенно, если бы Вы хотите проанализировать произвольно страницы "HTML", снятые Интернет), что необходимо было бы написать много кода для обработки угловых случаев. Кажется, что Python включает один из поля .

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

6
ответ дан 30 November 2019 в 05:50
поделиться

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

 <div>5 < 7</div>

Разделение тегов с regex возвратит строку "5" и обработка

 < 7</div>

как единственный тег и разделит его.

я предлагаю искать уже записанный код, который делает это для Вас. Я сделал поиск и нашел это: http://zesty.ca/python/scrape.html Это также может разрешить объекты HTML.

1
ответ дан 30 November 2019 в 05:50
поделиться

Регулярные выражения не страшны, но запись, что Ваш собственный regexes для разделения HTML является верным путем к безумию (и это не будет работать, ни один). Следуйте за путем мудрости и пользуйтесь одной из многих хороших анализирующих HTML библиотек.

пример Lucas также повреждается, потому что "sub" не является методом строки Python. Необходимо было бы "импортировать ре", затем назвать re.sub (шаблон, repl, строка). Но это ни здесь, ни там, поскольку корректный ответ на Ваш вопрос не включает запись никакого regexes.

0
ответ дан 30 November 2019 в 05:50
поделиться

Как насчет того, чтобы анализировать данные HTML и извлечь данные с помощью синтаксического анализатора?

я попробовал бы что-то как автор, описанный в глава 8.3 в Погружении В книгу

Python
4
ответ дан 30 November 2019 в 05:50
поделиться

Рассмотрение количества людей смысла демонстрирует в других ответах здесь, я сказал бы, что использование regex, вероятно, не является лучшей идеей для Вашей ситуации. Пойдите для чего-то проверенного на практике, и рассматривайте мой предыдущий ответ как демонстрацию, что regexes не должен быть это страшен.

0
ответ дан 30 November 2019 в 05:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: