瞧,返回的是一个字典,这样我们就知道网页的编码方式了,通过获得的信息,采用不同的解码方式即可。
PS:关于编码方式的内容,可以自行百度,或者看下这篇博客:
通常来说对咱们而言,须要抓取的是某个网站或者某个应用的内容,提取有用的价值。内容通常分为两部分,非结构化的数据 和 结构化的数据。php
实际上爬虫一共就四个主要步骤:css
咱们在昨天的案例里实际上省略了第3步,也就是"取"的步骤。由于咱们down下了的数据是所有的网页,这些数据很庞大而且很混乱,大部分的东西使咱们不关心的,所以咱们须要将之按咱们的须要过滤和匹配出来。html
那么对于文本的过滤或者规则的匹配,最强大的就是正则表达式,是Python爬虫世界里必不可少的神兵利器。java
正则表达式,又称规则表达式,一般被用来检索、替换那些符合某个模式(规则)的文本。node
正则表达式是对字符串操做的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。python
给定一个正则表达式和另外一个字符串,咱们能够达到以下的目的:程序员
- 给定的字符串是否符合正则表达式的过滤逻辑(“匹配”);
- 经过正则表达式,从文本字符串中获取咱们想要的特定部分(“过滤”)。
在 Python 中,咱们可使用内置的 re 模块来使用正则表达式。web
有一点须要特别注意的是,正则表达式使用 对特殊字符进行转义,因此若是咱们要使用原始字符串,只需加一个 r 前缀,示例:正则表达式
经过 Pattern
对象提供的一系列方法对文本进行匹配查找,得到匹配结果,一个 Match 对象。
Match
对象提供的属性和方法得到信息,根据须要进行其余的操做
compile 函数用于编译正则表达式,生成一个 Pattern 对象,它的通常使用形式以下:
这样咱们的url规律找到了,要想爬取全部的段子,只须要修改一个参数便可。 下面咱们就开始一步一步将全部的段子爬取下来吧。
a 标签里的内容其实是注释,可是若是咱们利用 .string 来输出它的内容时,注释符号已经去掉了。
经过 text 参数能够搜搜文档中的字符串内容,与 name 参数的可选值同样, text 参数接受 字符串 , 正则表达式 , 列表
这就是另外一种与 find_all 方法有殊途同归之妙的查找方法.
写 CSS 时,标签名不加任何修饰,类名前加.
,id名前加#
组合查找即和写 class 文件时,标签名与类名、id名进行的组合原理是同样的,例如查找 p 标签中,id 等于 link1的内容,两者须要用空格分开
这里须要注意一个是
re.S
是正则表达式中匹配的一个参数。若是 没有re.S 则是 只匹配一行 有没有符合规则的字符串,若是没有则下一行从新匹配。
- 若是 加上re.S 则是将 全部的字符串 将一个总体进行匹配,findall 将全部匹配到的结果封装到一个list中。
在浏览器上看不出来,可是若是按照文本打印会有<p>
出现,那么咱们只须要把咱们不但愿的内容去掉便可了。
接下来咱们就经过参数的传递对page进行叠加来遍历 内涵段子吧的所有段子内容。
只须要在外层加一些逻辑处理便可。
- 最后,咱们执行咱们的代码,完成后查看当前路径下的duanzi.txt文件,里面已经有了咱们要的内涵段子。
以上即是一个很是精简使用的小爬虫程序,使用起来非常方便,若是想要爬取其余网站的信息,只须要修改其中某些参数和一些细节就好了。
易采站长站,站长之家为您整理了Python如何安装urllib2库的相关内容。
相关教程推荐:Python视频教程以上就是关于对Python如何安装urllib2库的详细介绍。欢迎大家对Python如何安装urllib2库内容提出宝贵意见
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。