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

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

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

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?)

你可能感兴趣的:(销售员实战-第二个爬虫的继续学习-正则表达式入门)