python网络编程(一)-requests网络数据请求

requests是python提供的http网络数据请求库,支持cookie,文件上传,会自动实现持久连接keep-alive。

1. 最简单的使用方式:使用get接口获取网络数据

例子1:新浪体育nba网页数据获取

import os
import sys
import requests

#检查url地址,如果正确,返回网页内容
def check_link(url):
    try:
        r = requests.get(url)
        r.raise_for_status()
        r.encoding = r.apparent_encoding
        #print(r.text)
        return r.text
    except:
        print('无法链接服务器!!!')

#main
if __name__ == '__main__':
    #新浪体育nba网页数据获取
    url='http://sports.sina.com.cn/nba/'
    res=check_link(url)
    print("res:")
    print(res)

res:

<!doctype html>

<!-- [ published at 2021-02-19 22:10:11 ] -->

<!--[if lt IE 7]>  <html id="html" class="ie ie6 lt-ie9 lt-ie8 lt-ie7"> <![endif]-->

<!--[if IE 7]>     <html id="html" class="ie ie7 lt-ie9 lt-ie8"> <![endif]-->

<!--[if IE 8]>     <html id="html" class="ie ie8 lt-ie9"> <![endif]-->

<!--[if IE 9]>     <html id="html" class="ie ie9"> <![endif]-->

<!--[if gt IE 9]>  <html id="html"> <![endif]-->

<!--[if !IE]><!--> <html id="html"> <!--<![endif]-->

<head>

    <meta charset="utf-8">

    <meta http-equiv="X-UA-Compatible" content="IE=edge" />

    <!--<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0,user-scalable=no"/>-->

  <meta name="viewport" content="width=1024" />

    <title>NBA|新浪NBA|新浪竞技风暴_新浪网</title>

    <!--[if lt IE 9]>

<script src="//n.sinaimg.cn/lib/common/html5shiv-printshiv.min.js"></script>

<![endif]-->

    <meta name="keywords" content="NBA,NBA季前赛,NBA十佳球,NBA中国赛,NBA常规赛,NBA中国赛,NBA打架,NBA总决赛,,林书豪,库里,勇士,汤普森,三分,姚明,科比,湖人,易建联,麦蒂,麦迪,詹姆斯,韦德,乔丹,保罗,格里芬,尼克斯,火箭,小牛,热火,凯尔特人,NBA全明星,全明星,全明星赛,NBA全明星赛,扣篮大赛,扣篮">

    <meta name="description" content="新浪NBA,提供NBA中国赛、NBA常规赛、NBA总决赛、NBA季后赛等;nba十佳球、NBA快讯、NBA视频、NBA图片、NBA赛程、科比火箭等NBA球员球队的NBA数据以及丰富的NBA知识。">

代码说明:

requests.get(url),根据url获取一个requests模块的一个实例,通过requests.text获取网页数据。

2. requests的网络请求接口:

requests.get(url)                                # GET请求
requests.post(url)                              # POST请求
requests.put(url)                                # PUT请求
requests.delete(url)                           # DELETE请求
requests.head(url)                             # HEAD请求
requests.options(url)                         # OPTIONS请求

3. 响应的内容(网络请求返回值):

r.encoding                       #获取当前的编码
r.encoding = 'utf-8'             #设置编码
r.text                           #以encoding解析返回内容。字符串方式的响应体,会自动根据响应头部的字符编码进行解码。
r.content                        #以字节形式(二进制)返回。字节方式的响应体,会自动为你解码 gzip 和 deflate 压缩。

r.headers                        #以字典对象存储服务器响应头,但是这个字典比较特殊,字典键不区分大小写,若键不存在则返回None

r.status_code                     #响应状态码
r.raw                             #返回原始响应体,也就是 urllib 的 response 对象,使用 r.raw.read()   
r.ok                              # 查看r.ok的布尔值便可以知道是否登陆成功
 #*特殊方法*#
r.json()                         #Requests中内置的JSON解码器,以json形式返回,前提返回的内容确保是json格式的,不然解析出错会抛异常
r.raise_for_status()             #失败请求(非200响应)抛出异常

猜你喜欢

转载自blog.csdn.net/liranke/article/details/113873064
今日推荐