Python爬虫系列(一)

什么是爬虫

定义

  • 网络爬虫:又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者。是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。
  • 由于专门用于检索信息的“机器人”程序象蜘蛛一样在网络间爬来爬去,因此,搜索引擎的“机器人”程序就被称为“蜘蛛”程序。

历史

  • 1990年,蒙特利尔大学学生Alan Emtage发明的Archie,用于搜索分散的FTP主机上的资源。
  • 1993年,内华达大学受启发开发了类似工具,但是开始支持网页搜索。
  • Martin Koster于1993年10月创建了ALIWEB,它是Archie的HTTP版本。ALIWEB不使用“机器人”程序,而是靠网站主动提交信息来建立自己的链接索引,类似于现在我们熟知的Yahoo。
  • Yahoo, Google, Baidu, Bing…

为什么推荐使用Python写爬虫

  • 上手容易!!!
  • 免费开源,使用不受限制。
  • 解释执行,跨平台不受限制。
  • 面向对象
  • 框架和库支持丰富,有大量的历史积累。

Python开发环境搭建和简介

Python简介

  • 官网:https://www.python.org/
  • 作者:Guido van Rossum
  • 名字来源:Monty Python’s Flying Circus(和蟒蛇无关啊!)
  • 作者为什么发明Python:平衡C和Shell
  • 版本选择:2.7和3.5,更低版本不推荐使用。2.x和3.x的区别暂时不用关心。

Python环境搭建

  • Windows可去官网下载安装包:2.7.12或3.5.2
  • Mac
    • 系统自带
    • 通过homebrew和pyenv安装并维护多个Python版本,参考链接。
  • Linux系统自带,或参考上面链接使用pyenv安装并维护多个Python版本
  • 使用pip安装第三方包,命令为pip install package(注:Mac下需要打开sudo,参考链接。)
  • 新版本Mac系统可能因为SIP,需要在命令行后增加–user参数
  • 遇到GFW可以使用国内源(推荐豆瓣),命令行为pip install package -i --trusted-host http://pypi.douban.com/simple/

HTTP简介

  • HTTP = HyperText Transfer Protocol
  • URI = Uniform Resource Identifier
  • URL = Uniform Resource Locator
  • URI和URL的区别:URI强调的是资源,而URL强调的是资源的位置。

常用请求类型

  • OPTIONS: 返回服务器针对特定资源所支持的http请求方法。
  • HEAD: 向服务器索要与get请求相一致的响应,只不过响应体将不会被返回。
  • GET: 向特定资源发出请求
  • PUT: 向指定资源位置上传其最新内容
  • POST: 向指定资源提交数据进行处理请求
  • DELETE: 请求服务器删除指定URI所标识的资源
  • PATCH: 用来将局部修改应用于某一资源

HTTP常见状态码

  • 200/OK: 请求成功
  • 201/Created: 请求已被实现,且一个新资源已根据请求被建立,URI跟随Location头信息返回。
  • 202/Accepted: 服务器已接受请求,但尚未处理。
  • 400/Bad Request: 请求无法被服务器理解
  • 401/Unauthorized: 当前请求需要用户验证
  • 403/Forbidden: 服务器已理解请求,但拒绝执行。
  • 404/Not Found

HTML/XML/Json简介

HTML (Hypertext Markup Language)

  • 推荐教程:HTML
  • HTML不是编程语言,而是一种标记语言。即HTML使用标记标签来描述网页。
  • 标签和元素
  • DOM文档模型

HTML/XML/Json简介

XML (eXtensible Markup Language)

  • 推荐教程:XML
  • 树结构
    树结构

HTML/XML/Json简介

Json (JavaScript Object Notation)

  • 推荐教程:Json
  • 语法类似XML,但是更小、更快、更容易解析。对JavaScript特别友好。

MySQL/SQLite安装配置

MySQL

  • Windows:
    • 下载免费社区版mysql server。
    • 客户端操作可以使用MySQLWorkbench。
  • Linux(以debian为例):
    • apt-get install mysql-server mysql-client
    • 登陆mysql: mysql -p hostname -u username -p,然后使用use dbname指定需要操作的数据库
    • 安装phpmyadmin方便在浏览器操作数据库

MySQL/SQLite安装配置

MySQL常用命令

  • show databases: 显示当前服务器上的数据库
  • create database dbname: 创建一个新数据库
  • use dbname: 使用指定的数据库
  • show tables: 显示当前数据库的所有表
  • desc tbname: 显示表结构

SQLite

  • Windows直接去下载可执行文件即可使用,Linux下apt-get install sqlite3即可完成安装。
  • 相比mysql更加轻便好用。
  • 大数据情况下效率变差,适合单机小程序。

爬虫框架介绍

爬虫工作流程

  • 将种子URL放入队列
  • 从队列中获取URL,抓取内容。
  • 解析抓取内容,将需要进一步抓取的URL放入工作队列,存储解析后的内容

抓取策略

  • 深度优先
  • 广度优先
  • PageRank
  • 大站优先策略

如何去重

  • Hash表
  • bloom过滤器

爬虫质量标准

  • 分布式
  • 可伸缩性
  • 性能和有效性
  • 质量
  • 新鲜性
  • 更新
  • 可扩展性

Robots规范与原则

Robots规范

  • Robots协议(也称为爬虫协议、机器人协议等)的全称是“网络爬虫排除标准”(Robots Exclusion Protocol),网站通过Robots协议告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取。Robots协议的本质是网站和搜索引擎爬虫的沟通方式,用来指导搜索引擎更好地抓取网站内容,而不是作为搜索引擎之间互相限制和不正当竞争的工具。
  • 详情:http://baike.so.com/doc/4854891-5072162.html
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值