Ich versuche gerade, ein chinesisches Schriftzeichen sowie nicht standardisierte Buchstaben zu verschrotten. In den Ergebnissen ist es so, als ob Mechanize nur das chinesische Zeichen oder den nicht standardisierten Buchstaben übersprang.Die Verwendung von Mechanize, um chinesische Schriftzeichen von einer Website zu erhalten, bringt nichts zurück
Mein Code:
import mechanize
import re
br = mechanize.Browser()
br.addheaders = [('User-agent', 'Mozilla/5.0')]
br.set_handle_robots(False)
html = br.open('http://hanzidb.org/character-list/by-frequency')
html = html.read().lower()
html = unicode(html, errors='ignore')
#Only get the data between <td>...</dr>
pattern2 = re.compile(r'<td>(.*?)</td>', re.MULTILINE)
match_description2 = re.findall(pattern2, html)
data = []
#Collect the content of the table
for desc in match_description2:
data.append(desc)
print desc
Das Ergebnis, das ich bekommen (Beispiel) werden soll:
<tr><td><a href="/character/是">是</a></td><td><span style="color:#000099;">shì</span></td><td><span class="smmr">indeed, yes, right; to be; demonstrative pronoun, this, that</span></td><td><a href="/character/日" title="Kangxi radical 72">日</a> 72.5</td><td>9</td><td>1</td><td>1479</td></td><td>3</td></tr>
Versus dem Ergebnis bin ich immer:
<td><a href="/character/"></a></td><td><span style="color:#000099;">sh</span></td><td><span class="smmr">indeed, yes, right; to be; demonstrative pronoun, this, that</span></td><td><a href="/character/" title="kangxi radical 72"></a> 72.5</td><td>9</td><td>1</td><td>1479</td></td><td>3</td>
Ich schätze jede mögliche Hilfe und Ich kann weitere Informationen zur Verfügung stellen, wenn es sein muss.
Verwenden Sie 'beautifulsoup4' statt HTML zu parsen. Die Verwendung regulärer Ausdrücke für HTML kann zu [unerwünschten Ergebnissen] führen (http://stackoverflow.com/a/1732454/918959) –