BeautifulSoup (html) возвращает текст с пробелами между буквами - PullRequest
0 голосов
/ 31 августа 2018

Я использую Красивый суп, чтобы удалить эту страницу: url= http://www.ville-brunoy.fr/Brunoy.asp?idpage=3458. Для этого я использую:

html=requests.get(url, headers=headers).text soup = BeautifulSoup(html).

Но текст, который я получаю при выполнении этой команды, не такой, как ожидалось (то есть отличается от того, что я получаю, когда проверяю URL). BeautifulSoup () создает пробел между буквами, и вывод выглядит так:

s.className='';" onmouseover="MM_showHideLayers('letraitdunion','','show'); MM_swapImage('img_letraitdunion','','images2/fleche_survol.gif',1); this.className='li_social';">
<a href="brunoy.asp?idpage=4290">Le Trait d'Union</a></li>
</ul>
</dd>
</dl>
<a href="imprim_html.asp?idpage=3458&amp;lxml" target="_blank"><img a="" src="images2/impr.jpg">l t = " I m p r i m e r   l a   p a g e "   c l a s s = " i c o n e _ o u t i l "   / &gt; / a &gt; a   h r e f = " s i t e _ a c c e s . a s p ? i d P a g e = 3 4 5 8 &amp;i d = &amp;a p p e l = " &gt; i m g   s r c = " i m a g e s 2 / i m a g e s 2 o e i l . j p g "   a l t = " V e r s i o n   a c c e s s i b l e   a u x   m a l - v o y a n t s "   c l a s s = " o e i l "   / &gt; / a &gt; 

Я использовал эту функцию для разных веб-сайтов и никогда не сталкивался с этой проблемой. Вы знаете, откуда это могло прийти?

Спасибо

Antoine

1 Ответ

0 голосов
/ 31 августа 2018

Проблема заключается в том, как вы используете BeautifulSoup().
Вместо этого:

r = requests.get(url)
soup = BeautifulSoup(r.text)

вы должны использовать:

r = requests.get(url)
soup = BeautifulSoup(r.content,"lxml")

Разница в том, что с text вы передаете содержимое ответа в unicode (то есть, строка Unicode), в то время как с content вы передаете raw undecoded bytes.

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