7

Chciałbym zeskrobać stolik z sieci i zachować & nbsp; encje nienaruszone, aby móc ponownie opublikować jako HTML później. BeautifulSoup wydaje się jednak konwertować je do przestrzeni. Przykład:Scrape przy użyciu Beautiful Soup zachowując   podmiotów

from bs4 import BeautifulSoup 

html = "<html><body><table><tr>" 
html += "<td>&nbsp;hello&nbsp;</td>" 
html += "</tr></table></body></html>" 

soup = BeautifulSoup(html) 
table = soup.find_all('table')[0] 
row = table.find_all('tr')[0] 
cell = row.find_all('td')[0] 

print cell 

obserwowany wynik:

<td> hello </td> 

wymagane wyniki:

<td>&nbsp;hello&nbsp;</td> 

Odpowiedz

5

W BS4 convertEntities parametr konstruktora BeautifulSoup nie jest już obsługiwane. Obiekty HTML są zawsze konwertowane na odpowiednie znaki Unicode (patrz docs).

Według docs, trzeba użyć formatowania wyjścia, podobnie jak to:

print soup.find_all('td')[0].prettify(formatter="html") 
+0

Dzięki za odpowiedź :) –

Powiązane problemy