正则表达式
在 2.2 节中,我们已经可以用 requests 库来获取网页的源代码,得到 HTML 代码。但我们真正想要的数据是包含在 HTML 代码之中的,要怎样才能从 HTML 代码中获取想要的信息呢?正则表达式就是其中一个有效的方法。
本节我们将了解一下正则表达式的相关用法。正则表达式是用来处理字符串的强大工具,它有自己特定的语法结构,有了它,实现字符串的检索、替换、匹配验证都不在话下。
当然,对于爬虫来说,有了它,从 HTML 里提取想要的信息就非常方便了。
实例引入
说了这么多,可能我们对正则表达式到底是什么还是比较模糊,下面就用几个实例来看一下它的用法。
打开开源中国提供的正则表达式测试工具 http://tool.oschina.net/regex/ 或 https://regex101.com/ ,输入待匹配的文本,然后选择常用的正则表达式,就可以得出相应的匹配结果了。例如,这里输入如下待匹配的文本。
Hello, my phone number is 010-86432100 and email is cqc@cuiqingcai.com, and my website is https://cuiqingcai.com
这段字符串中包含一个电话号码、一个 E-mail 地址和一个 URL,接下来就尝试用正则表达式将这些内容提取出来。
在网页右侧选择 “匹配 Email 地址”,就可以看到下方出现了文本中的 E-mail,如图 2-11 所示。
如果选择 “匹配网址URL”,可以看到下方出现了文本中的 URL,如图 2-12 所示。