1989年
Guido van Rossum(荷兰人)html
解释型语言python
BASIC、Pythonweb
同声传译正则表达式
比较灵活redis
设计哲学数据库
“优雅”“明确”“简单”编程
易学、易用缓存
可读性高cookie
开发哲学数据结构
“用一种方法,最好是只用一种方法来作一件事”
现代编程语言
面向对象
支持泛型设计
支持函数式编程
丰富的数据结构和第三方函数库
功能强大
基本的器件
爬虫调度端
爬虫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