2

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列表
  • 有用数据

基本的网页解析器:

  1. 正则表达式
  2. html.parser(自带)
  3. BeautifulSoup
  4. lxml

RDDcoding
151 声望17 粉丝

一心一行