python 爬虫匹配中文总是失败?
向各位大神请教个问题,初学python,我想提取"DJ00123987"和"号: DJ00123987"的部分,但是匹配中文总是失败。请问这是为什么?另外正则表达式的中文和空格应该怎么匹配?谢谢!编码格式都为UTF-8。
import re
html = '<span>微信号:DJ00123987</span>'
print html
a = re.search(u'<span>微信号: (.*?)</span>', html, re.S).group(1)
b = re.search(u'<span>微信(.*?)</span>', html, re.S).group(1)
print a,b
抽风西红柿
9 years, 2 months ago
Answers
完整的测试代码:
# -*- encoding: utf8 -*-
import re
html = u'<span>微信号:DJ00123987</span>'
print html
a = re.search(u'<span>微信号:(.*?)</span>', html, re.S).group(1)
b = re.search(u'<span>微信(.*?)</span>', html, re.S).group(1)
print a, b
运行结果:
Linux
:
Windows
:
注意事项:
-
文件保存的编码为
utf-8
. -
文件开头增加
# -*- encoding: utf8 -*-
编码声明. -
变量
html
赋值的时候, 在字符串前面加上u
修饰符. -
你的
a
赋值时正则里的:
是半角的, 与原始字符串中的不一样(那个是全角的), 所以会匹配失败, 而匹配失败返回的结果是None
, 在None
的基础上取group(1)
是会出错的.
大大大的肉棒
answered 9 years, 2 months ago