Python爬虫实践
缘由:自己在新浪的博客,准备搬个家,可惜现在各个blog的空间越来越封闭了,于是准备自己整个爬虫,爬下来放到typecho中来
爬虫概述
| 爬虫种类 | 描述 |
|---|---|
| 通用型网络爬 | 目标是尽可能大的覆盖网络对象;主要基于关键字 |
| 聚焦网络爬虫 | 抓取特定主题的网页,为相关用户提供数据资源 |
| 增量式网络爬虫 | 只更新变化的部分,对算法有要求 |
| 深层网络爬虫 | 需要注册登录之后才能获取内容的部分 |
爬虫结构
- 根据需求设定种子URL
- 把URL放入待抓取队列
- 从待抓取URL读出要处理的URL,解析并下载对应的网页,根据需要解析存储;将处理完毕的URL放入已处理URL队列
- 将 3 中的数据分析出来的URL和已抓取的URL比较去重,将未处理的URL放入待抓取队列,进入新的循环。
Python和HTTP有关的常用库
- urllib2和urllib
主要用这个两个库,包括:
- 请求与响应
- 请求的Headers处理
- Cookie的处理
- 设置超时
- 获取HTTP响应码
- 重定向
- Proxy代理
- Python3不用urllib2了,最简单就是用urllib.request
- httplib和urllib
基本不用httplib - Requests
第三方Requests库
HTML解析
- 用Python的正则表达式
- Beautiful Soup
- lxml