爬虫
首先上爬虫的定义:网络爬虫是一种自动获取网页内容的程序,是搜索引擎的重要组成部分。
嗯,按照我的理解就是爬虫程序就是能够提取网页中信息的程序
我也是这两天才开始学爬虫,这篇教程参考了网上的很多资源,希望能给有需要的人以帮助。
在各位看官开始学习之前想向大家介绍几篇文章,请大家认真阅读,这样上手python
爬虫就会事半功倍了。
我很大程度上是按照上面介绍的第三篇博客入门python
爬虫的。
Python介绍
Python
(英国发音:/ˈpaɪθən/
美国发音:/ˈpaɪθɑːn/
),是一种面向对象、直译式的计算机程序语言,具有近二十年的发展历史。它包含了一组功能完备的标准库,能够轻松完成很多常见的任务。它的语法简单,与其它大多数程序设计语言使用大括号不一样,它使用缩进来定义语句块。— 来自于维基百科
另外该篇博客适用于有高等语法基础(不需要必须是python
)的朋友,没有语法基础的朋友可以去慕课网或codecademy学习下
工欲善其事必先利其器
在学习python
的过程中,不得不面临python 2.+
或python 3.+
的选择,个人觉得既然是出于学习的目的,当然要学习新知识,因此我选择了python 3.4
。
个人使用体会:python3.+
在python2.+
的基础上对包又进行了一些整合,语法略有些变化,可能因为现在我涉及的层面还比较浅,并未感觉两个版本之间有太大的不同。
可以通过官网安装python 3.4
;附python
官方文档
我们现在的目标是实现一个可以从一个链接开始爬取所有相关链接的爬虫
思路:
1、从给定链接开始,维持一个待爬取队列,以及一个已访问链接集合
2、每次从队列中弹出一条链接并打开,对于该链接对应页面,用正则表达式匹配页面内所有的链接,
3、对这些链接进行判断,如果已经被爬虫爬过,则跳过,否则加入待爬取队列
4、重复2,3步,直到队列为空,说明所有链接均已被爬取
话不多说,下面通过8个程序来学习python
爬虫吧
python教程-1.1
python中使用#
注释,多行注释使用快捷键Alt+3
,消除多行注释使用快捷键Alt+4
下面这个小程序的功能是打开一个网页并读取网页源码
|
|
python教程-1.2
使用下面这个程序实现python中我们需要的队列
deque的相关内容可参见C++或java中deque的定义
|
|
python教程-1.3
下面这个小程序是为了演示set
功能,类似于数学中集合的定义,每个元素具有唯一性。
|
|
python教程-1.4
程序演示python中正则表达式应用
re.match(pattern, string, flags=0)
实现按照pattern
的模式匹配string
,flags
是附加标志位;
同理re.search(pattern, string, flags=0)
实现搜索功能 ;
re.sub(pattern, string, flags=0)
实现替换功能。
re.match()
与re.search()
区别在于
如果
re.match()
在匹配字符串开始的过程中失败就会终止匹配
re.search()
则会从字符串开始到结尾尝试匹配
有不懂或者遗忘正则表达式的朋友请点这里:
1、正则表达式教程
flag含义:
1、
re.I
大小写不敏感2、
re.L
本地化识别匹配3、
re.M
多行匹配4、
re.S
使.能够匹配换行符5、
re.U
根据Unicode解析字符
另外也可以使用re.compile(pattern).findall(string)
来查找所有匹配,会返回所有匹配结果,并且结果保存在列表
中(后面会有具体的栗子)
|
|
python教程-1.5
目标的实现:下面的程序即实现了我们开始要求的功能,当然想把所有链接都爬取是需要时间的。。。当你觉得不需要再爬的时候可以中断程序
|
|
以上就是该篇博客所有内容了,如有未尽兴的朋友,请移步: