2016-03-21 6 views
3

Ich versuche, Programm zu machen, um jedes Wort zu senden() BeautifulSoup dann drucken Sie das Ergebnis. zum Beispiel, wenn ich das „Hallo“ Wort (http://upodn.com/phon.php) Website einreichen das Ergebnis: həlo , aber wenn ich das „Hallo“ Wort mit meinem Skript eintragen des Ergebnis: həlowie Unicode Ergebnis in BeautifulSoup

Wie ich das Ergebnis drucken wie es in der Website erscheint =>?

Script:

# -*- coding: utf-8 -*- 

import mechanize 
import cookielib 
from BeautifulSoup import BeautifulSoup 
import html2text 

br = mechanize.Browser() 
cj = cookielib.LWPCookieJar() 
br.set_cookiejar(cj) 
br.set_handle_equiv(True) 
br.set_handle_redirect(True) 
br.set_handle_referer(True) 
br.set_handle_robots(False) 
br.set_handle_refresh(mechanize._http.HTTPRefreshProcessor(), max_time=1) 
br.addheaders = [('User-agent', 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/2008071615 Fedora/3.0.1-1.fc9 Firefox/3.0.1'), ('Content-type', 'text/html; charset=utf-8')] 
br.open('http://upodn.com/phon.php') 
br.select_form(nr=0) 
br.form['intext'] = 'hello' 
br.submit() 
data = br.response().read() 
soup = BeautifulSoup(data) 
# print soup 
table = soup.find('table', {'rules': 'cols'}) 
result = [] 
for row in table.findAll("font"): 
    d = row.text 
    result.append(d) 
print result[1] 

Ausgang:

həlo 
[Finished in 2.7s] 
+1

Zuerst verwenden Sie die veraltete Version von BeautifulSoup; die aktuelle Version ist das Paket und Modul 'bs4' –

Antwort

2

Sie verwenden absolut veraltete Version von BeautifulSoup, BeautifulSoup 3. Die aktuelle Version, 4 BeautifulSoup genannt wird beautifulsoup4 in PyPI und hat top- Level-Paket bs4. BeautifulSoup 4 decodiert diese HTML-Entities:

Python 2.7.10 (default, Oct 14 2015, 16:09:02) 
[GCC 5.2.1 20151010] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> from bs4 import BeautifulSoup 
>>> print(BeautifulSoup('<b>h&#x0259;lo</b>').find('b').text) 
həlo 

Es hat keinen Sinn, neue Code in schriftlicher Form, die BeautifulSoup3 verwendet, so sollten Sie jetzt wechseln.

+0

Das funktioniert perfekt, danke :) –