美文网首页
销售员实战-第二个爬虫的继续学习-正则表达式入门

销售员实战-第二个爬虫的继续学习-正则表达式入门

作者: 日月山人 | 来源:发表于2015-06-17 23:25 被阅读94次

    这一次的爬虫,目标:
    找出中国的企业,爬他们的电话号码,邮件,公司名称。

    发现这里面需要正则表达式,好把。

    python爬虫入门-正则表达式入门

    思考一下有哪些需要的知识

    • BeautifulSoup库的学习
    • 正则表达式的学习

    自己已经爬了一个数据库,以上知识是必须需要的。写到这,想到要学的东西何其多也,包括如何利用api。基本看了一下,需要的是,json. 继续爬基础吧。

    第一个字符

    \b : 元字符 (位置号)
    匹配单词的位置: 不代表字符
    如去文章中去找到hi。

    >>>我们的原文章,可以是 hi! this is a hillo. hi 
       wat!   hill,thil , a
    >>> hi 
    >>> hi
    

    文章内容有点乱,主要目的是,找到hi.

    第二、三个字符

    . 这个代表不包括换行符的任意字符。 (字符号)

    * 这个代表位置,代表任意位置 (位置号)

    第四个字符

    /d : 代表数字,(字符号)

    如匹配021-51877320

    0/d{2}-/d{8}

    {}:重复几次
    

    更多的字符号

    /w : 匹配字符,字母,下划线 (字符号)
    /s: 代表空白字符 (字符号)

    更多的位置号

    ^ : 匹配字符串的开始
    $ : 匹配字符串的结束

    重复

    * : 匹配任意位置,0次或者多次

    + : 匹配1次或者多次

    ? : 匹配0次或者1次

    {n,m} :重复n到m次。

    查找没有预定义的字符

    什么叫预定义符号?
    比如我要去查找 cat, 但是你如果模糊查询,hat,或者cat,怎么办呢,[]这就是你会用到的。

    [ac]: a 或者 c
    [0-9]: 0到9

    例子:匹配:(010)88886666,或022-22334455,或02912345678

    提示用?

    那么:这样来表示:

    \(0?\d{2}[) -]?\d{8}

    • 转义字符( 代表(
    • (? 代表可能出现0次或者1次。
    • \d{3} 数字重复3次
    • [} -]: 代表模糊,),或者- ,或者空格。
    • [) -]? :代表可能0次或者1次。

    但是可能会出现的情况吗? (01088886666,如果是这样怎么办呢?

    分支 ( 或)

    使用我们程序见到的|,或来避免。

    (0d{2})?[- ]?\d{8}|\0d{2}[- ]?d{8}

    分组()

    基本上我们的第一阶段,扫盲就要结束了, 后面就是慢慢基础补充了。最好看一下分组的意思吧。

    () 比如,讲表达式分组。

    192.168.001.002

    • step1: d{1,3} 为什么不是d{3},000和0 的意思啊。
    • step2: d{1,3}/. 匹配:192.
    • step3: (d{1,3}/.){3} 重复192.168.1.
    • step4: (d{1,3}/.){3}/d{1,3} : 明白了吗

    但是以上会出现256.311.871.921 情况, 我们知道ip地址不能超过255,这样的情况怎么办呢?

    • step1: ( /.){3}
    • step2: 2[0-4]\d|25[0-5]|[01]?/d/d? (可能只是1位数)
    • step3:(2[0-4]\d|25[0-5]|[01]?/d/d?/.){3}(2[0-4]\d|25[0-5]|[01]?/d/d?)

    相关文章

      网友评论

          本文标题:销售员实战-第二个爬虫的继续学习-正则表达式入门

          本文链接:https://www.haomeiwen.com/subject/aqssqttx.html