python小脚本之页面标题的爬取

突然心血来潮,想要好好研究下python的正则表达式,每次遇到正则总是百度这个.*?什么意思,感觉好烦。。不如来好好研究下具体的符号,但是研究了总要有个用途,于是我决定配合requests库,来进行页面的爬取,然后利用正则表达式,来对页面的标题进行一个匹配,从而得到我们博客的所有页面标题~

下面我普及一下requests库和re库的运用:

1、requests库

Requests 是用Python语言编写,基于 urllib,采用 Apache2 Licensed 开源协议的 HTTP 库。它比 urllib 更加方便,可以节约我们大量的工作,完全满足 HTTP 测试需求。Requests 的哲学是以 PEP 20 的习语为中心开发的,所以它比 urllib 更加 Pythoner。更重要的一点是它支持 Python3。

安装requests库:

或者

上述两种方法基本是python库函数的通用两种安装方法,如果是python新手,建议先学会上述两种安装方法,很重要!

这里就只介绍我们用到函数,具体应用请看这里:传送门

这里我们首先需要在头部调用requests库,好多次代码调试失败最后都是忘了头部的调用!

这里我们用到的是GET方法来获取的页面,相对的还有POST形式。

这里可能有人对content不理解,我们看到的页面是经过各类js的优化,最终看到的页面,在页面源代码中记录了我们这个页面的各项参数,标题、内容、调用了什么js函数、post表单等等,因此我们需要获取这个页面源代码。

对requests的讲解就到这里,具体的用法还有很多,但是最常用的就是GET和POST方式,使用方法其实很类似~

2、re库

这个库是python自带的,不需要我们安装

我们只需要在头部调用这个函数即可,re的用法非常多,基本能想到的匹配原则,都有相应的实现方式,这里具体的使用方法请看这里:传送门

这里我只讲解最简单最基础的匹配原则,复杂的可能我自己也讲不清。。。

看上面的代码,首先我们在头部调用了re库函数

接着我们定义了一个content的字符串,这里的“balalalala”模拟的是一个页面的任意内容,而我们的标题就存在在页面的某一个地方,这时候我们需要运用正则匹配来讲我们的标题挖出来,从而实现标题的获取

re.findall这个函数是获取页面所有的匹配到的字符串,常用的函数还有match、search等等,在正则匹配中最重要的是我们的匹配规则,这里就是”<title>.*</title>”,

这里的<title></title>不多说,HTML标签,页面的标题一定都是存在在这个标签里,因此我们如果想要爬取标题,一定会到这个HTML标签里来找数据,最主要的是这个.*什么意思。

这才是正则匹配的难点,当然还有很多符号,如^[]+等等,这些符号都代表了不同的含义,因此也就有了不同的用法,所以每次遇到正则表达式,都会来百度这些符号的具体含义。。。

这里的.代表的是匹配任意字符,*代表匹配字符无限次,在这里即为匹配任意字符任意多次,加入只有一个.则标识匹配任意字符但是只有一个字符能够被匹配到,

还是上面的例子

因此由于我们也不知道标题到底有多少个字符,因此我们需要使用.*

这里我们可以看到的返回的是一个列表,findall是搜寻所有能被匹配的,因此可能不止有一个,但是标题只有一个,因此在标题爬取的实际编程中,我们只需要找列表的第一个值即可~

下面附上标题爬取的源代码(python2.7)

 

相关推荐: python小脚本之维吉尼亚密码

维吉尼亚作为古典密码,本身的加解密并不是很难,因此也就有了这篇文章~ 下面初步解释下维吉尼亚密码的加密原理,假设现在有明文‘a’,加密密钥为‘b’,然后我们参照上面的维吉尼亚密码表进行加密,在a行的b列即为我们加密过后的密文,在这里我们的密文即为‘b’。同理,…

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论