python爬虫-基础(一)

网络爬虫又称网络蜘蛛、网络机器人,是按照一定规则自动浏览、检索网页信息的程序或脚本。
爬虫其实是通过编写程序,模拟浏览器上网,然后去互联网上抓取数据的过程
网络爬虫主要用途是采集数据,是数据分析不可或缺的工具之一。
一文解读网络爬虫

爬虫的分类

爬虫分为:通用网络爬虫、聚集网络爬虫、增量式网络爬虫

  • 通用网络爬虫:是搜索引擎的重要组成部分,需要遵守robots协议。
    robots协议:是一种约定俗成的协议,网站通过此协议告诉搜索引擎哪些页面可以爬取,那些不允许爬取
  • 聚集网络爬虫:是面向特定需求的一种网络爬虫程序。抓取页面中特定的局部内容
  • 增量式网络爬虫:是指对已下载网页采取增量式更新,是一种只爬取新产生的或已经发生变化网页的爬虫程序

爬虫的价值

抓取互联网上的数据,为我所用,有了大量的数据,就如同有了一个数据银行一样,下一步就是如何将这些数据产品化、商业化。

爬虫是否合法

网络爬虫在法律中是不被禁止,但是具有违法风险,通常来说爬虫分为善意的爬虫和恶意的爬虫。爬虫带来的风险可以体现在如下两个方面:

  • 爬虫干扰了被访问网站的正常运营
  • 爬虫抓取了受法律保护的特定类的数据或信息

在使用爬虫的过程中怎样避免呢?

  • 时常优化自己的程序,避免干扰被访问网站的正常运行
  • 在使用、传播爬取到的数据时,审查抓取到的内容,如果发现涉及到用户隐私或者商业机密等敏感内容,需要及时停止爬取或传播

http协议和https协议

http协议:就是服务器和客户端进行数据交互的一种形式。http协议中常用的请求头信息:

  • User-Agent(UA):请求载体的身份标识
    即用户代理,特殊字符串头,网站服务器通过识别UA来确定用户所用的操作系统版本、CPU类型、浏览器版本等信息
    默认爬虫程序直接爬取,请求头中User-Agent不是浏览器的方式,需要对User-Agent进行重构
    短时间内总使用一个 UA 高频率访问的网站,可能会引起网站的警觉,从而封杀掉IP。构建代理池可防止这种情况
  • Connection:请求完毕后,是断开连接还是保持连接http协议中常用的响应头信息:
  • Content-Type:服务器响应回客户端的数据类型https协议其实就是一种安全的http协议

网页构成

网页一般有三部分组成,分别是HTMLCSSJS

  • HTML:负责定义网页的内容
  • CSS:负责描述网页的布局
  • JS:负责网页的行为

静态网页和动态网页

  • 静态网页是标准的 HTML 文件,通过 GET 请求方法可以直接获取,文件的扩展名是.html、.htm等,网面中可以包含文本、图像、声音、FLASH 动画、客户端脚本和其他插件程序等。
  • 动态网页指的是采用了`动态网页技术的页面,比如AJAX等技术,不需要重新加载整个页面内容,就可以实现网页的局部更新

URL组成

协议域名(ip)端口号路径查询字符串

http://www.xxx.com/index?name=xx&age=xx

:,用于分隔协议和主机组件
?,用于分隔路径和查询参数等。
=,用于表示查询参数中的键值对。
&,符号用于分隔查询多个键值对。
URL 编码协议规定:URL只允许使用ASCII字符集可显示的字符,比如英文字母数字、和- _ . ~ ! *这 6 个特殊字符。
当在URL中使用不属于ASCII字符集的字符时,就要使用特殊的符号对该字符进行编码,比如空格需要用%20来表示

需要编码的三种情况

  • ASCII 表中没有对应的可显示字符,例如,汉字
  • 不安全字符,包括:# % < > [ ] { } | \ ^ `
  • 部分保留字符,即 & / : ; = ? @

Http基础

爬虫是一个模拟浏览器进行 HTTP 请求的过程

URI 统一资源标志符,用来标识抽象或物理资源的一个紧凑字符串
URL 统一资源定位符,一种定位资源的主要访问机制的字符串
URN 统一资源名称,通过特定命名空间中的唯一名称或ID来标识资源

什么是 HTTP ?

超文本传输协议,是一个基于请求与响应,无状态的,应用层的协议,常基于TCP/IP协议传输数据

什么是HTTPS?

一种通过计算机网络进行安全通信的传输协议,经由HTTP进行通信,利用SSL/TLS建立全信道,加密数据包
主要目的是提供对网站服务器的身份认证,同时保护交换数据的隐私与完整性

Request请求

客户端发送http请求到服务器
http请求报文由请求行、请求头、空行、请求数据4部分组成
1、请求行:请求方法、请求地址url、http协议版本
请求方法常见有get、post
2、请求头常用信息:accept、accept-language、cookie、referer、user-agent、content-type
3、请求数据,get请求请求体为空

Response响应

服务端接收请求并处理后,返回响应内容给客户端
http响应内容由响应行、响应首部、响应体
1、响应行:http协议版本号、状态码、状态码简短描述
常见404代表页面找不到、200代表服务器正常响应、500代表服务器内部错误
2、响应头包含服务器对请求的应答信息
3、响应体,响应的正文数据

爬虫程序的简单流程

  • 先获取网页的内容HTML对象,如使用内置urllib或第三方requests库
  • 使用浏览器打开网页源代码分析网页结构以及元素节点
  • 再根据规则提取所需数据,如使用beautifulsoup 或 正则表达式
  • 存储数据到本地磁盘或数据库
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值