python网络爬虫介绍

网络爬虫就是按照一定的规则,自动地抓取网络上的各种信息的程序。

网络爬虫分类

按照系统结构和实现技术,可以把分为通用网络爬虫、聚焦网络爬虫、增量式网络爬虫、深层网络爬虫。实际应用中可以将这几种结合起来使用。

 

通用网络爬虫:如网络搜过引擎,根据提示信息尽可能多的收集互联网上的信息。

聚焦网络爬虫:根据设置抓取网页上某一特定主题的内容。

增量式网络爬虫:只抓取已经抓取的网页的更新内容。

深层网络爬虫:深层指定的是一些网站中需要登录、提交内容等等操作才能获取内容,相对于网页上的静态内容。

爬虫基本工作流程:

1  首先选取一部分种子 URL。

2 将这些 URL放人待抓取 URL 队列。

3 从待抓取 URL, 队列中读取待抓取队列的 URL,解析 DNS,并且得到主机的 IP,并将URL,对应的网页下载下来,存储进已下载网页库中。此外,将这些 URL放进已抓取 URL队列。

4 分析已抓取 URL队列中的 URL,从已下载的网页数据中分析出其他 URL,并和已抓取的 URL,进行比较去重,最后将去重过的 URL放入待抓取 URL队列,从而进入下一个循环。

用python实现HTTP请求:

Python中实现 HTTP请求的三种方式:urllib2/urllib、httplib/urllib 以及 Requests 。

在python2中需要urllib和urllib2配合使用。在python3中urllib2改成了urllib.request,urllib2已经停用了。

在python3中的urllib包含的模块:

l  urllib.request 用于打开和读取URL

l  urllib.error 用于处理前面request引起的异常

l  urllib.parse 用于解析URL

l  urllib.robotparser用于解析robots.txt文件

 

urllib.request.urlopen语法

urllib.request.urlopen(url, data=None, [timeout, ]*, cafile=None, capath=None, cadefault=False, context=None)

打开一个url地址发送请求,如果没有data参数,则是get请求,有的话是post请求。

 

例子1:

from urllib import request

response = request.urlopen(
'https://www.baidu.com')
html = response.read()
print(html)

结果:

python爬虫介绍_python