Python Beautifulsoup извлекает шестнадцатеричные значения - PullRequest
0 голосов
/ 05 июля 2018

Я строю скребок, в котором я хочу извлечь данные из некоторых тегов без какой-либо конвертации. Но Beautifulsoup изменил некоторые шестнадцатеричные значения на ASCII. Например, этот код преобразуется в ASCII

html = """\
<title>&#x42;&#x69;&#x6C;&#x6C;&#x69;&#x6E;&#x67;&#x20;&#x61;&#x64;&#x64;&#x72;&#x65;&#x73;&#x73; - &#x50;&#x61;&#x79;&#x50;&#x61;&#x6C;</title>
<title>Billing address - PayPal</title>"""

Вот небольшой пример кода

from bs4 import BeautifulSoup
soup = BeautifulSoup(html, "lxml")
for element in soup.findAll(['title', 'form', 'a']):
    print(str(element))

Но я хочу извлечь данные в той же форме. Я считаю, что BeautifulSoup 4 автоматически конвертирует сущности HTML, а это то, чего я не хочу Любая помощь будет очень признательна.

Кстати, я использую Python 3.5 и Beautifulsoup 4

1 Ответ

0 голосов
/ 05 июля 2018

Вы можете попробовать использовать модуль re ( Регулярные выражения ). для примера приведенный ниже код извлечет информацию тега заголовка без его преобразования: (я предполагал, что вы ранее объявили переменную html)

import re
result = re.search('\<title\>.*\<\/title\>',html).group(0)
print(result) # It'll print <title>&#x42;&#x69;&#x6C;&#x6C;&#x69;&#x6E;&#x67;&#x20;&#x61;&#x64;&#x64;&#x72;&#x65;&#x73;&#x73; - &#x50;&#x61;&#x79;&#x50;&#x61;&#x6C;</title>

Вы можете сделать то же самое для других тегов

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