pythoon(大蟒蛇)
1989年
Guido van Rossum(荷兰人)
解释型语言
BASIC、Python
同声传译
比较灵活
-
设计哲学
“优雅”“明确”“简单”
易学、易用
可读性高
-
开发哲学
“用一种方法,最好是只用一种方法来做一件事”
-
现代编程语言
面向对象
-
支持泛型设计
支持函数式编程
-
丰富的数据结构和第三方函数库
功能强大
python web spider
简单爬虫架构
-
基本的器件
爬虫调度端
爬虫url管理器
网页下载器
-
网页解析器
价值数据
url数据
-
过程
url管理器
管理待抓取URL集合和已抓取URL集合
防止重复/循环抓取
支持功能:
-
添加新的url》待抓取
判断是否已经存在
-
获取待爬取url
-
判断是否还有待爬取url
将url从待爬取》已爬取
-
-
实现方式
-
存储到内存
适合小型、个人
python内存
-
set()
-
待爬取一个 已爬取一个
直接去除重复的元素
-
关系数据库
适合:永久
-
mySQL
-
urls(url,is_crawled)
iscrawled判断是否已经爬取
缓存数据库
高性能 》 大公司
-
-
redis
-
待爬取url集合:set
已爬取url集合:set
-
-
网页下载器
将互联网下URL对应的网页下载到本地的工具
-
基本的网页下载器
-
urllib2
python官方基础模块
基本下载、cookies、密码
-
requests
第三方包更强大
-
处理一些特殊情景
HTTPCookieProcessor 密码
ProxyHandler 代理
HTTPSHandler加密
HTTPRedirectHandler 重定向
-
网页解析器
提取有用数据:
输出
url列表
有用数据
基本的网页解析器:
正则表达式
html.parser(自带)
BeautifulSoup
lxml