美文网首页
从0开始学python第10.2节-HTTP请求数据

从0开始学python第10.2节-HTTP请求数据

作者: 阿达老师 | 来源:发表于2018-09-13 09:07 被阅读0次

上节课,我们学习了什么是网络、网络的发展历程和常见网络协议。这节课,我们重点学习一下HTTP协议和怎么用python请求、解析HTTP数据。

什么是HTTP

HTTP是超文本传输协议的简称。所谓超文本,就是在互联网上传输的信息。我们在浏览器里浏览的网页,就是使用超文本标记语言HTML实现的,下章我们会详细介绍HTML。

典型的HTTP传输如下:客户端(浏览器)对指定的url发起http请求。url指定的服务端在接收到请求后,将自己的数据(经常是html或json)返回给客户端。

我们分别看一下发起请求和请求响应的部分。

一个典型的请求头如下:

GET / HTTP/1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) Accept: */*

我们去请求服务端数据时,有getpostputdelete4种方式,其中 get和post较为常用。

请求的响应数据格式如下:

HTTP/1.0 200 OK Content-Type: text/plain Content-Length: 137582 Expires: Thu, 05 Dec 1997 16:00:00 GMT Last-Modified: Wed, 5 August 1996 15:55:28 GMT Server: Apache 0.84 <html>  <body>Hello World</body> </html>

回应的格式是"头信息 + 一个空行(\r\n) + 数据"。其中,第一行是"协议版本 + 状态码(status code) + 状态描述"。

这里有个非常重要的,状态码。具体含义如下:

python的request模块

在python中,我们使用requests模块来发起发起http请求。

  1. request 安装

    我们可以使用pip install requests命令安装requests包。

  2. 请求数据demo

r = requests.get('https://api.github.com/events')

调用 requests的get方法发起请求,请求参数是目标地址。

  1. post请求的参数

    post请求时的附带参数可以这样模拟:

requests.post('http://baidu.com', data = {'key':'value'})

get请求的参数

payload = {'key1': 'value1', 'key2': 'value2'} r = requests.get("http://baidu.com", params=payload) print(r.url)

  1. 获取请求返回数据

r = requests.get('https://api.github.com/events') print(r.text)

  1. 返回结果json解码

r = requests.get('https://api.github.com/events') print(r.json())

  1. 设置超时(秒单位)

requests.get('http://github.com', timeout=3)

代码实例

下面,我们来看一个python通过http请求获取天气的小demo,看代码:

import requests headers = {'Authorization': 'APPCODE 2c571bbe36b24e9aa3cadaaee4d0adbf'} r = requests.get(    'https://saweather.market.alicloudapi.com/spot-to-weather?area=杭州&need3HourForcast=0&needAlarm=0&needHourData=0&needIndex=0&needMoreDay=0',    headers=headers)     print(r.json()['showapi_res_body']['now']['weather'])

代码的第二行,我们往http的header里设置了请求码,用来做鉴权。当获得数据后,我们首先将结果转为json格式。然后读取返回数据的当前天气字段。

request模块里还有更多的方法来发起复杂HTTP请求,我们在具体项目使用时再一起学习。

阿达老师-孩子身边的编程专家

完整课程请关注阿达老师,主页里有完整的课程目录和观看地址

相关文章

  • 从0开始学python第10.2节-HTTP请求数据

    上节课,我们学习了什么是网络、网络的发展历程和常见网络协议。这节课,我们重点学习一下HTTP协议和怎么用pytho...

  • 从0开始学大数据

    从0开始学大数据 开篇词 | 为什么说每个软件工程师都应该懂大数据技术? 预习模块 (3讲) 预习 01 | 大数...

  • 小白学基金

    从0开始学基金(第一篇) 从0开始学基金(第二篇) 从0开始学基金(第三篇) 从0开始学基金(第四篇) 从0开始学...

  • 19-01-09requests

    import requests python中的数据请求(http请求),是第三方库requests来提供的 1....

  • 数据请求

    import requests python中的数据请求(http请求),是第三方库requests来提供的 1....

  • Python爬虫从0开始学(1)

    在简书写Python爬虫的文章超过30篇了(《Python爬虫文章专辑》),上周加了不少想学习Python爬虫的朋...

  • 01.09 笔记 - request

    python网络请求中的数据请求(http请求),通过一个第三方库来提供 -> request 1. reques...

  • python爬虫初步

    和http(超文本传输协议) 爬虫步骤:确认需求》寻找需求》发送请求》解析数据》存储数据 python爬虫初步 编...

  • ios关于接口请求失败,浏览器可打开链接问题

    突然发现测试环境(http)所有接口都请求不到数据,而生产环境(https)可以请求到数据,所以开始以为是http...

  • cisp-pte web安全基础

    3.1 http协议 http请求方法 主要由get、post、head组成 ~GET- 从指定的资源请求数据。 ...

网友评论

      本文标题:从0开始学python第10.2节-HTTP请求数据

      本文链接:https://www.haomeiwen.com/subject/ygwigftx.html