• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >编程问答 > python爬虫匹配中文总是失败?

python爬虫匹配中文总是失败?

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-07

佚名通过本文主要向大家介绍了python爬虫的中文处理,python爬虫中文乱码,python 爬虫框架,python爬虫课程,网络爬虫 python等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: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

解决方案1:

你正则表达式是 unicode 编码的,你的 html 是字符串类型的,在 python2 中中文字符一般设置成的是utf-8编码,你用 unicode 字符串的正则去获取 utf-8 编码的字符串当然就匹配失败了。

建议将 html 用 unicode 编码。

也就是拿到 utf-8 编码的html后 ,content = html.decode('utf-8')

再用正则匹配 content

解决方案2:

可以使用Beautiful Soup

解决方案3:

  1. 字符集不同,如@DDTDDT 所说,你的html缺了unicode的标记u,但是正则表达式却用了unicode

  2. 你的微信号后面的冒号,一个是半角,一个是全角

解决方案4:

html 漏了u?
另外看下你整个文件保存的字符集,不然即使你加了u,如果文件是GBK的那么也可能遇到一些意外的问题。

解决方案5:

完整的测试代码:

# -*- 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:
python基础教程,python 下载,python 2.7,python 教程,python入门,python 爬虫,python官网,python安装,python list

Windows:
python基础教程,python 下载,python 2.7,python 教程,python入门,python 爬虫,python官网,python安装,python list

注意事项:

  1. 文件保存的编码为 utf-8.

  2. 文件开头增加 # -*- encoding: utf8 -*- 编码声明.

  3. 变量html赋值的时候, 在字符串前面加上 u 修饰符.

  4. 你的 a 赋值时正则里的 : 是半角的, 与原始字符串中的不一样(那个是全角的), 所以会匹配失败, 而匹配失败返回的结果是None, 在None的基础上取 group(1) 是会出错的.


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • python爬虫Python链接加中午,输出中文不在链接里
  • python爬虫Python:爬虫的中文编码问题?
  • python爬虫Python列表或者字典里面的中文如何处理?
  • python爬虫如何让python支持中文
  • python爬虫python中文字符串编码的应用?
  • python爬虫python处理文本
  • python网络爬虫中文乱码问题
  • 关于中文网页爬虫显示乱码的问题
  • python处理中文
  • (python)爬虫无法输出中文

相关文章

  • 2017-06-07 intelx86里以下机器码的执行快慢
  • 2017-06-07 Codeforces:吉他手问题
  • 2017-06-07 字符串不能存储数据
  • 2017-06-07 WrongargumentsnewfortargetjavalangreflectConstructorexpected=[javanet
  • 2017-06-07 是否支持上传webp格式?
  • 2017-06-07 七牛在全国有哪些加速节点?
  • 2017-06-07 上传视频、音频时间长度限制怎么设置
  • 2017-06-07 (python)scrapy运行时候报错
  • 2017-06-07 (python)如何使用scrapy抓取某宝数据?
  • 2017-06-07 unicode编码转换python34编码转换问题

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 编程题:最优平均分配
    • (python)Flask-SQLAlchemydbengineexecute
    • 是否有考虑提供文件打包功能
    • 最近在学Pythonflaskweb开发,想知道怎么和react配合,做到前后端分离?
    • {"error":"imageview2:Filetoolarge"}图片超过了100M,在查看的时候报错
    • 我们这网站有开放源码吗?
    • js数组赋值ar=arpushy为什么是错的?
    • 使用python抓下来的腾讯首页怎么会是这样?
    • 请问JBoss51到底商用需要收费吗?
    • django(python)Django中如何使用异步

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有