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
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。