Python入门笔记(十三)——HTTP和爬虫入门

爬虫是什么

网络爬虫是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。—— 百度百科

必备基础知识
  • Python基础语法学习
  • HTML 页面内容抓取
  • HTML 页面数据提取
  • 指定要求格式的数据存储(主要是mysql,redis,mongodb数据库的存储)
  • Scrapy框架以及scrapy-redis分布式策略(第三方框架)
通用爬虫和聚焦爬虫
通用爬虫

通用网络爬虫是捜索引擎抓取系统(Baidu、Google、Yahoo等)的重要组成部分。主要目的是将互联网上的网页下载到本地,形成一个互联网内容的镜像备份。

聚集爬虫

聚焦爬虫是"面向特定主题需求"的一种网络爬虫程序。
它与通用搜索引擎爬虫的区别在于:聚焦爬虫在实施网页抓取时会对内容进行处理筛选,尽量保证只抓取与需求相关的网页信息。

HTTP 和 HTTPS

HTTP协议(HyperText Transfer Protocol,超文本传输协议)是一个应用层协议,由请求和响应构成,是一个标准的个客户端和服务器模型.它的主要特点如下:

  • 支持客户端/服务器模型
  • 简单快速
  • 灵活
  • 无连接
  • 无状态

HTTPS(Hypertext Transfer Protocol over Secure Socket Layer)简单讲是HTTP的安全版,在HTTP下加入SSL层。

SSL(Secure Sockets Layer 安全套接层)主要用于Web的安全传输协议,在传输层对网络连接进行加密,保障在Internet上数据传输的安全。

  • HTTP的端口号为80,
  • HTTPS的端口号为443

当用户在浏览器的地址栏中输入一个URL并按回车键之后,浏览器会向HTTP服务器发送HTTP请求。HTTP请求主要分为“Get”和“Post”两种方法。
当我们在浏览器输入URL http://www.baidu.com 的时候,浏览器发送一个Request请求去获取 http://www.baidu.com 的html文件,服务器把Response文件对象发送回给浏览器。
浏览器分析Response中的 HTML,发现其中引用了很多其他文件,比如Images文件,CSS文件,JS文件。浏览器会自动再次发送Request去获取图片,CSS文件,或者JS文件。
当所有的文件都下载成功后,网页会根据HTML语法结构,完整的显示出来了。

GET是从服务器上获取数据,POST是向服务器传送数据
GET请求参数显示,都显示在浏览器网址上,HTTP服务器根据该请求所包含URL中的 参数来产生响应内容,即“Get”请求的参数是URL的一部分。例如: http://www.baidu.com/s?wd=Chinese
POST请求参数在请求体当中,消息长度没有限制而且以隐式的方式进行发送,通常用 来向HTTP服务器提交量比较大的数据(比如请求中包含许多参数或者文件上传操作等), 请求的参数包含在“Content-Type”消息头里,指明该消息体的媒体类型和编码

状态码

当浏览者访问一个网页时,浏览者的浏览器会向网页所在服务器发出请求。当浏览器接收并显示网页前,此网页所在的服务器会返回一个包含HTTP状态码的信息头(server header)用以响应浏览器的请求。

HTTP状态码的英文为HTTP Status Code。

下面是常见的HTTP状态码:

  • 2XX - 请求成功
  • 3XX - 资源(网页等)被永久转移到其它URL
  • 4XX - 请求的资源(网页等)不存在
  • 5XX - 内部服务器错误

具体状态码请查看 -> 点这里

Cookie 和 Session

服务器和客户端的交互仅限于请求/响应过程,结束之后便断开,在下一次请求时,服务器会认为新的客户端。为了维护他们之间的链接,让服务器知道这是前一个用户发送的请求,必须在一个地方保存客户端的信息。

Cookie:通过在客户端记录的信息确定用户的身份。
Session:通过在服务器端记录的信息确定用户的身份。

Requests模块

Urllib和requests模块是发起http请求最常见的模块。
虽然Python的标准库中 urllib 模块已经包含了平常我们使用的大多数功能,但是它的 API 使用起来让人感觉不太好,而 Requests 自称 “HTTP for Humans”,说明使用更简洁方便。
Requests 继承了urllib的所有特性。Requests支持HTTP连接保持和连接池,支持使用cookie保持会话,支持文件上传,支持自动确定响应内容的编码,支持国际化的 URL 和 POST 数据自动编码。
Requests的底层实现其实就是 urllib3(urllib2的升级版—python2支持)
Requests的文档非常完备,中文文档也相当不错。Requests能完全满足当前网络的需求,支持Python 2.6—3.6.

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值