2014-06-09 5 views
0
a_string = soup.find(text='围') 

soup.find_all('title', limit=1) 
# [<title>The Dormouse's story</title>] 

soup.find('title') 
# <title>The Dormouse's story</title> 

Y at-il de toute façon je peux gérer trouver avec des caractères chinois tout en utilisant beautifulsoup?Belle soupe .find caractères chinois

Essayé pendant un certain temps, ne peut pas sembler détecter le caractère. caractère anglais fonctionne bien

Source du site Web je travaille avec

<!DOCTYPE html> 
<html lang="zh-CN"> 
    <head> 
     <meta charset="gbk" /> 

Répondre

1

Lorsque vous utilisez find(text='something'), il recherchera des nœuds de texte contenant exactement le texte 'quelque chose' et rien d'autre.

Si vous voulez trouver un texte qui contient une lettre particulière, ou correspondre à une autre expression régulière, vous devez utiliser modèle d'expression régulière à la place (comme @Yannis dit):

soup.find(text=re.compile(u'定')) 

Notez le drapeau re.U est pas nécessaire car vous ne changez pas le comportement des caractères spéciaux comme \ s ou \ w. Si tel est le cas, vous devrez peut-être le fournir. En savoir plus sur les expressions régulières here

1

Essayez quelque chose comme:

a_string = soup.find(text=re.compile(u'围', re.U)) 

En d'autres termes, la chaîne recherchée doit être garantie pour être unicode. Il peut fonctionner sans re.compile() mais assurez-vous au moins que votre chaîne chinoise est incluse dans u''