zoukankan      html  css  js  c++  java
  • python爬虫数据解析之正则表达式

    爬虫的一般分为四步,第二个步骤就是对爬取的数据进行解析。

    python爬虫一般使用三种解析方式,一正则表达式,二xpath,三BeautifulSoup。

    这篇博客主要记录下正则表达式的使用。

    正则表达式                          

     匹配除“n”之外的任何单个字符。

    * 匹配前面的子表达式零次或者多次。

    + 匹配前面的子表达式一次或者多次。

    ? 匹配前面的子表达式零次或者一次。

      将下一个字符标记为一个特殊字符、或一个原义字符、或一个向后引用、或一个八进制转义符。

    ^ 匹配输入字符串的开始位置。

     $ 匹配输入字符结束的位置。

    {n} 确定匹配n次。

    {n,} 至少匹配n次。

    {n,m} 最少匹配n次,最多匹配m次。

    ? 当该字符紧跟在任何一个其他限制符(*,+,?,{n},{n,},{n,m})后面时,匹配模式是非贪婪的。

    x|y 匹配x或者y

    [xyz] 匹配集合中的任意一个字符。

    [^xyz] 匹配未包含的任意字符。

    [a-z] 匹配a-z.

    [^a-z] 匹配不在a-z的任意字符。

     匹配一个单词边界.

    B 匹配一个非单词边界。

    d 匹配任意一个数字字符。

    D 匹配任意一个非数字字符。

    w 匹配数字字母下划线

    W 匹配非数字字母下划线

    s 匹配任意空白字符     ''

    S 匹配任意一个非空白字符

    A  匹配字符串开头 ^
      匹配字符串结尾 $

    贪婪模式: .*

    非贪婪(惰性)模式: .*?

      正则表达式的分组()

      格式 (?P<name>regex) 其中name就是起的名字
      e.g. 'hello (?P<cat>kitty)'
      给kitty正则表达式的子组起了个名字cat
      调用格式 : (?P=name) name是要调用的子组名称

    re.I : 忽略大小写

    re.M :多行匹配

    re.S :单行匹配

     正则表达式匹配实例          

    import re

    re模块是python的标准库模块,是用来处理正则表达式的

    re.findall(regex,string)
    功能:使用regex 去匹配string中的内容,如果匹配到则以一个列表的方式进行返回

    使用正则爬取猫眼电影top100:

    https://www.cnblogs.com/xiaozx/p/10680548.html

    抓取糗事百科图片:

    https://www.cnblogs.com/xiaozx/p/10717762.html

  • 相关阅读:
    Git命令大全
    window系统查看端口被哪个进程占用了
    字体大小自适应纯css解决方案
    CSS3的rem设置字体大小
    javascript同名变量
    西部数码云服务器手记
    十年,站酷已成设计论坛霸主,博客园却成无兵之将
    PHP的性能大坑--strtotime函数
    csv表格处理(上)-- JS 与 PHP 协作导入导出
    致互联网--那些我浅尝则止的昙花
  • 原文地址:https://www.cnblogs.com/xiaozx/p/10727116.html
Copyright © 2011-2022 走看看