Python爬虫实践

缘由:自己在新浪的博客,准备搬个家,可惜现在各个blog的空间越来越封闭了,于是准备自己整个爬虫,爬下来放到typecho中来

爬虫概述

爬虫种类 描述
通用型网络爬 目标是尽可能大的覆盖网络对象;主要基于关键字
聚焦网络爬虫 抓取特定主题的网页,为相关用户提供数据资源
增量式网络爬虫 只更新变化的部分,对算法有要求
深层网络爬虫 需要注册登录之后才能获取内容的部分

爬虫结构

  1. 根据需求设定种子URL
  2. 把URL放入待抓取队列
  3. 待抓取URL读出要处理的URL,解析并下载对应的网页,根据需要解析存储;将处理完毕的URL放入已处理URL队列
  4. 3 中的数据分析出来的URL和已抓取的URL比较去重,将未处理的URL放入待抓取队列,进入新的循环。

    Python和HTTP有关的常用库

  5. urllib2和urllib
    主要用这个两个库,包括:
  • 请求与响应
  • 请求的Headers处理
  • Cookie的处理
  • 设置超时
  • 获取HTTP响应码
  • 重定向
  • Proxy代理
  • Python3不用urllib2了,最简单就是用urllib.request
  1. httplib和urllib
    基本不用httplib
  2. Requests

第三方Requests库

HTML解析

  1. 用Python的正则表达式
  2. Beautiful Soup
  3. lxml