美丽的汤。找到汉字

时间:2014-06-09 09:54:06

标签: python selenium python-3.x beautifulsoup

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>

无论如何我在使用beautifulsoup时能用汉字处理吗?

尝试了一段时间,似乎无法检测到这个角色。英文字符很好用

我与

合作的网站来源
<!DOCTYPE html>
<html lang="zh-CN">
  <head>
        <meta charset="gbk" />

2 个答案:

答案 0 :(得分:1)

尝试类似:

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

换句话说,应该确保搜索到的字符串是unicode。它可以在没有re.compile()的情况下工作,但至少要确保您的中文字符串包含在u''

答案 1 :(得分:1)

当您使用find(text='something')时,它会搜索包含文本的文本节点&#39;某些内容&#39;没有别的。

如果要查找包含特定字母的文本,或者匹配任何其他正则表达式,则必须使用正则表达式模式(如@Yannis所说):

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

请注意,re.U标志不是必需的,因为您不会更改特殊字符(如\ s或\ w)的行为。如果是这种情况,那么您可能需要提供它。详细了解正则表达式here