简单的Python爬虫

因为Python无需编译直接执行,所以可以成为脚本

脚本:简单的Python程序

程序:大一点的、复杂的Python脚本

爬虫:一种自动抓取互联网信息的程序

这里写图片描述

爬虫的价值
基于爬取的数据进行分析,提取数据分析服务

爬虫网络架构

爬虫调度端:启动 运行 监控
1. URL管理器
2. 网页下载器
3. 网页解析器

这里写图片描述


运行流程

这里写图片描述


URL管理器
4. URL管理器:管理待抓取URL集合和已抓取URL集合
5. 防止重复抓取、防止循环抓取

步骤

新的URL添加到待爬取集合中

判断待添加URL是否在容器中

若为新的URL则添加到管理器中

获取一个待爬去的URL(先判断是否存在待爬去URL)

爬取完成后将待爬取移动到已爬取

-

URL实现方式

1.内存(小型)

采用set()方式存储:set会自动去重

2.关系数据库(个人实现永久存储)

MYSQL urls(url,is_crawled) #is_crawled表示是否已经爬取

3.缓存数据库(高性能大项目)

redis 待爬取set 已爬去set

这里写图片描述

网页下载器
将互联网上URL对应的网页下载到本地的工具
将网页以HTML形式存储到本地文件或内存字符串

1.utllib2

Python官方基础模块 cookie处理 代理处理

2.request

Python第三方插件 更为强大

utllib2
三种方法
1.最简单的方法urllib2.urlopen(url)

import urllib2 #直接请求 response = urllib2.urlopen(\'http://www.baidu.com\') #获取状态码,如果是200表示获取成功 print response.getcode() #读取内容 cont = response.read()

2.添加data、http header
url data header传送给urllib2.request类 以request类作为请求传递给urlopen
相比与1 ulr地址变为了request

这里写图片描述

imort urllib2 #创建session对象 request = urllib2.Requset(url) #添加数据 requset.add_data(\'a\',\'1\') #添加http的header 访问伪装为Mozilla/5.0浏览器 requset.add_header(\'User-Agent\',\'Mozilla/5.0\') #同1 response = urllib2.urlopen(requset)

3.添加特殊情景的处理器

这里写图片描述

#Python3 #cookie处理 import urllib2,cookielib #创建cookie容器 cj = cookielib.CookieJar() #将cookie架作为参数传递给header 传递给build_opener #床架一个opener opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj)) #给uillb2安装opener urllib2.install)opener(opener) #使用带有cookie的urllib2访问网页 response = urllib2.urlopen("http://www.baidu.com/")

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzpdjz.html