J'essaie actuellement de supprimer un caractère chinois ainsi que des lettres non standard. Dans les résultats, c'est comme si Mechanize venait de sauter le caractère chinois ou une lettre non standard.L'utilisation de Mechanize pour obtenir des caractères chinois à partir d'un site Web ne renvoie rien
Mon 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
Le résultat que je devrais obtenir (par exemple):
<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 le résultat que je reçois:
<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>
J'apprécie toute aide et Je peux fournir plus d'informations si nécessaire.
Veuillez utiliser 'beautifulsoup4' à la place pour analyser HTML. Utiliser des expressions régulières pour HTML peut conduire à [résultats indésirables] (http://stackoverflow.com/a/1732454/918959) –