精华内容
下载资源
问答
  • requests库
    万次阅读 多人点赞
    2021-07-12 09:00:11

     👻上一篇博文一篇万字博文带你入坑爬虫这条不归路(你还在犹豫什么&抓紧上车) 【❤️熬夜整理&建议收藏❤️】被众多爬虫爱好者/想要学习爬虫的小伙伴们阅读之后,很多小伙伴私信我说——大佬搞爬虫都是用的socket套接字嘛?👻

     😬(苦笑)“那肯定不是啊!python为我们封装了那么多伟大而又简单实用的爬虫库,”不过我想说的是,“ 学啥技术都是从底层抓起,万丈高楼平地起,它也是基于地基稳! 所以在入坑文中简单地介绍使用了下底层爬虫库——socket!”😬

     😜而本文,本博主就带领小伙伴们认真地学习一下Python中一大广为使用的爬虫库——Requests——专为人类而构建;有史以来下载次数最多的Python软件包之一!😜

    • 这篇文章曝光很大,很多小伙伴因为这篇文章成功入坑爬虫,但是!我发现一个很严重的问题,有些人基础都没咋学,就来直接搞爬虫,很多问我很基础很基础的问题!所以,我希望大家python基础一定要好好过一遍,费不了多少时间,我的python基础专栏也是下功夫最大,结合了我四五年项目经验而成,希望大家认真学习,有问题可以群里交流或者私信我。
      【P
    更多相关内容
  • 知识点:使用requests库 爬虫程序编写流程 爬虫的技术选型 爬虫的编写主要有两种形式: requests + beautifulsoap或者lxml 使用成熟的爬虫框架,例如Scrapy 两种选型的比较 requests ,beautifulsoap,lxml都是程序...
  • 主要介绍了python3 requests库文件上传与下载实现详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • requests库的session对象能够帮我们跨请求保持某些参数,也会在同一个session实例发出的所有请求之间保持cookies。 举个栗子,跨请求保持cookies,在命令行上输入下面命令: # 创建一个session对象 s = requests....
  • 一、Requests库的安装 利用 pip 安装,如果你安装了pip包(一款Python包管理工具,不知道可以百度哟),或者集成环境,比如Python(x,y)或者anaconda的话,就可以直接使用pip安装Python的库。 $ pip install ...
  • 主要介绍了python基于requests库爬取网站信息,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • REQUESTS库文档

    2017-11-05 13:51:43
    python Requests库文档,PDF版本,作者在官网上发布的。
  • requests库官方文档

    2018-10-19 18:20:42
    requests 2.19.1最新版官方文档使用教程(原版)。
  • 使用requests库对特定小说网的某小说进行爬取下载,适用于学习python爬虫的新手借鉴思路,代码。
  • 目录Requests库入门Requests库安装HTTP协议Requests库方法爬取网页的通用代码框架Requests库实战 Requests库入门 Requests库安装 pip install requests Requests库的安装测试: >>> import requests >>> r = ...
  • 文章目录Python爬虫(二)—— requests库实践 ——1.京东商品页面的爬取2. 实例3:百度360搜索关键词提交3. 网络图片的爬取和存储 1.京东商品页面的爬取 import requests url = ...
  • requests库安装指导超详细版———吐血制作
  • 众所周知,Mac自带python2,但无奈我们想使用新版本,因此我们需要安装python3 ...以上这篇mac下给python3安装requests库和scrapy库的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望
  • 自动化学习人群
  • Python Requests库详解

    2018-08-24 16:00:44
    Python Requests库详解,pdf版本,适用于爬虫初学者。
  • python - requests库详解(csdn)————程序
  • python ,requests,爬虫框架,适合人类的爬虫框架,适合新手入门,也适合用来随时查询APi
  • Python Requests库安装和使用

    千次阅读 2022-03-11 11:59:08
    Python Requests库安装和使用 Python 提供了多个用来编写爬虫程序的库,除了前面已经介绍的 urllib 库之外,还有一个很重的 Requests 库,这个库的宗旨是“让 HTTP 服务于人类”。 Python requests Requests 是 ...

    Python Requests库安装和使用

    Python 提供了多个用来编写爬虫程序的库,除了前面已经介绍的 urllib 库之外,还有一个很重的 Requests 库,这个库的宗旨是“让 HTTP 服务于人类”。

    Python requests

    Requests 是 Python 的第三方库,它的安装非常简便,如下所示:

    python -m pip install requests
    

    Requests 库是在 urllib 的基础上开发而来,它使用 Python 语言编写,并且采用了 Apache2 Licensed(一种开源协议)的 HTTP 库。与 urllib 相比,Requests 更加方便、快捷,因此在编写爬虫程序时 Requests 库使用较多。

    常用请求方法

    1) requests.get()

    该方法用于 GET 请求,表示向网站发起请求,获取页面响应对象。语法如下:

    res = requests.get(url,headers=headers,params,timeout)
    

    参数说明如下:
    url:要抓取的 url 地址。

    headers:用于包装请求头信息。

    params:请求时携带的查询字符串参数。

    timeout:超时时间,超过时间会抛出异常。

    具体使用示例如下:

    import requests
    url = 'http://baidu.com'
    response = requests.get(url)
    print(response)
    输出结果:
    <Response [200]>
    获取带查询字符串参数的响应对象,如下所示:
    import requests
    data = {
        'name': 'C语言',
        'url': "www.ccc.net"
    }
    response = requests.get('http://httpbin.org/get', params=data)
    #直接拼接参数也可以
    #response = requests.get(http://httpbin.org/get?name=gemey&age=22)
    #调用响应对象text属性,获取文本信息
    print(response.text)
    

    输出结果:

    {
      "args": {
        "name": "\u7f16\u7a0b\u5e2e",
        "url": "www.ccc.net"
      },
      "headers": {
        "Accept": "*/*",
        "Accept-Encoding": "gzip, deflate",
        "Host": "httpbin.org",
        "User-Agent": "python-requests/2.23.0",
        "X-Amzn-Trace-Id": "Root=1-60420026-236f9205646b68706d0fafa7"
      },
      "origin": "121.17.25.194",
      "url": "http://httpbin.org/get?name=\u7f16\u7a0b\u5e2e&url=www.ccc.net"
    }
    

    2) requests.post()

    该方法用于 POST 请求,先由用户向目标 url 提交数据,然后服务器返回一个 HttpResponse 响应对象,语法如下:

    response=requests.post(url,data={请求体的字典})
    

    示例如下所示:

    import requests
    #百度翻译
    url = 'https://fanyi.baidu.com'
    #post请求体携带的参数,可通过开发者调试工具查看
    #查看步骤:NetWork选项->Headers选项->Form Data
    data = {'from': 'zh',
            'to': 'en',
            'query': '编程帮www.biancheng.net你好'
            }
    response = requests.post(url, data=data)
    print(response)
    

    输出结果:

    <Response [200]>
    

    查看 Form Data 的步骤,如下图所示:

    Python爬重开发者工具使用

    图1:Chrome开发者调试工具(点击看高清图)

    对象属性

    当我们使用 Requests 模块向一个 URL 发起请求后会返回一个 HttpResponse 响应对象,该对象具有以下常用属性:

    HttpResponse响应对象属性

    常用属性说明
    encoding查看或者指定响应字符编码
    status_code返回HTTP响应码
    url查看请求的 url 地址
    headers查看请求头信息
    cookies查看cookies 信息
    text以字符串形式输出
    content以字节流形式输出,若要保存下载图片需使用该属性。

    使用示例如下所示:

    import requests
    response = requests.get('http://www.baidu.com')
    print(response.encoding)
    response.encoding="utf-8"    #更改为utf-8编码
    print(response.status_code)  # 打印状态码
    print(response.url)          # 打印请求url
    print(response.headers)      # 打印头信息
    print(response.cookies)      # 打印cookie信息
    print(response.text)  #以字符串形式打印网页源码
    print(response.content) #以字节流形式打印
    

    输出结果:

    #编码格式
    ISO-8859-1
    #响应码
    200
    #url地址
    http://www.baidu.com/
    #请求头信息
    {'Cache-Control': 'private, no-cache, no-store, proxy-revalidate, no-transform', 'Connection': 'keep-alive', 'Content-Encoding': 'gzip', 'Content-Type': 'text/html', 'Date': 'Mon, 08 Mar 2021 05:19:33 GMT', 'Last-Modified': 'Mon, 23 Jan 2017 13:27:29 GMT', 'Pragma': 'no-cache', 'Server': 'bfe/1.0.8.18', 'Set-Cookie': 'BDORZ=27315; max-age=86400; domain=.baidu.com; path=/', 'Transfer-Encoding': 'chunked'}
    #查看cookies信息
    <RequestsCookieJar[<Cookie BDORZ=27315 for .baidu.com/>]>
    ...内容过长,此处省略后两项输出
    

    Requests库应用

    示例应用:使用 Requsets 库下载百度图片。

    首先打开百度图片(https://image.baidu.com/),并在输入框搜索 “python logo”,然后使用 Chrome 开发者工具查看第一张图片的源地址,即 data-imgurl 所对应的 url 地址,如下所示:

    data-imgurl="https://ss2.bdstatic.com/70cFvnSh_Q1YnxGkpoWK1HF6hhy/it/u=38785274,1357847304&fm=26&gp=0.jpg"
    

    可以将上述 url 粘贴至浏览器地址栏进行验证。当我们确定图片地址后,就可以使用 requests 库进行编码了:

    import requests
    url = 'https://ss2.bdstatic.com/70cFvnSh_Q1YnxGkpoWK1HF6hhy/it/u=38785274,1357847304&fm=26&gp=0.jpg'
    #简单定义浏览器ua信息
    headers = {'User-Agent':'Mozilla/4.0'}#读取图片需要使用content属性
    html = requests.get(url=url,headers=headers).content
    #以二进制的方式下载图片
    with open('C:/Users/Administrator/Desktop/image/python_logo.jpg','wb') as f:
        f.write(html)
    

    最后,您会在桌面文件夹中找到已经下载好的图片,如下所示:

    requests库应用

    图2:Requests库简单应用

    展开全文
  • Requests库介绍

    千次阅读 2020-12-12 13:43:31
    Requests 是用Beautiful is better than ugly.(美丽优于丑陋)Explicit is better than implicit.(清楚优于含糊)Simple is better than complex.(简单优于复杂)Complex is better than complicated.(复杂优于繁琐)...

    Requests 是用

    Beautiful is better than ugly.(美丽优于丑陋)

    Explicit is better than implicit.(清楚优于含糊)

    Simple is better than complex.(简单优于复杂)

    Complex is better than complicated.(复杂优于繁琐)

    Readability counts.(重要的是可读性)

    requests库常用的7种方法:

    requests.requests()

    requests.get(‘https://github.com/timeline.json’) #GET请求

    requests.post(“http://httpbin.org/post”) #POST请求

    requests.put(“http://httpbin.org/put”) #PUT请求(提交修改全部的数据)

    requests.delete(“http://httpbin.org/delete”) #DELETE请求

    requests.head(“http://httpbin.org/get”) #HEAD请求

    requests.patch(“http://httpbin.org/get”) #PATCH请求(提交修改部分数据)

    剩下六种方法都是由requests()方法实现的,因此我们也可以说requests()方法是最基本的

    在网络上,对服务器数据进行修改是比较困难的,在实际中get()方法是最为常用的方法

    1.requests()方法:

    requests.requests(method, url, **kwargs)

    method:请求方式:GET, PUT,POST,HEAD, PATCH, delete, OPTIONS7种方式

    url:网络链接

    **kwargs: (13个可选参数)(下面演示这些参数如何使用)

    params: 字典或者字节序列,作为参数增加到url中

    >>> payload = {'key1': 'value1', 'key2': 'value2'}

    >>> r = requests.get("http://httpbin.org/get", params=payload)

    通过打印输出该URL,你能看到URL已被正确编码:

    >>> print r.url

    u'http://httpbin.org/get?key2=value2&key1=value1'

    json: JSON格式的数据,作为requests的内容

    >>> import requests

    >>> r = requests.get('https://github.com/timeline.json')

    >>> r.json()

    [{u'repository': {u'open_issues': 0, u'url': 'https://github.com/...

    headers: 字典,HTTP定制头

    data: 是第二个控制参数,向服务器提交数据

    import requests

    import json

    data = {'some': 'data'}

    headers = {'content-type': 'application/json',

    'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:22.0) Gecko/20100101 Firefox/22.0'}

    r = requests.post('https://api.github.com/some/endpoint', data=data, headers=headers)

    print(r.text)

    cookies: 字典或CookieJar, Requests中的cookie

    如果某个响应中包含一些Cookie,你可以快速访问它们:

    import requests

    r = requests.get('http://www.google.com.hk/')

    print(r.cookies['NID'])

    print(tuple(r.cookies))

    要想发送你的cookies到服务器,可以使用 cookies 参数:

    import requests

    url = 'http://httpbin.org/cookies'

    cookies = {'testCookies_1': 'Hello_Python3', 'testCookies_2': 'Hello_Requests'}

    # 在Cookie Version 0中规定空格、方括号、圆括号、等于号、逗号、双引号、斜杠、问号、@,冒号,分号等特殊符号都不能作为Cookie的内容。

    r = requests.get(url, cookies=cookies)

    print(r.json())

    auth: 元组,支持HTTP认证功能

    import requests

    from requests.auth import HTTPBasicAuth

    r = requests.get('https://httpbin.org/hidden-basic-auth/user/passwd', auth=HTTPBasicAuth('user', 'passwd'))

    # r = requests.get('https://httpbin.org/hidden-basic-auth/user/passwd', auth=('user', 'passwd')) # 简写

    print(r.json())

    files: 字典类型,传输文件

    import requests

    url = 'http://127.0.0.1:5000/upload'

    files = {'file': open('/home/lyb/sjzl.mpg', 'rb')}

    #files = {'file': ('report.jpg', open('/home/lyb/sjzl.mpg', 'rb'))} #显式的设置文件名

    r = requests.post(url, files=files)

    print(r.text)

    timeout: 设置的超时时间,秒为单位

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

    Traceback (most recent call last):

    File "", line 1, in

    requests.exceptions.Timeout: HTTPConnectionPool(host='github.com', port=80): Request timed out. (timeout=0.001)

    proxies: 字典类型,设定访问代理服务器,可以增加登录认证

    import requests

    proxies = {

    "http": "http://10.10.1.10:3128",

    "https": "http://10.10.1.10:1080",

    }

    requests.get("http://www.zhidaow.com", proxies=proxies)

    如果代理需要账户和密码,则需这样:

    proxies = {

    "http": "http://user:pass@10.10.1.10:3128/",

    }

    allow_redirects: True/False,默认为True, 重定向开关

    stream: True/False,默认为True,获取内容立即下载开关

    verity: True/False,默认为True, 认证SSL证书

    cert: 本地SSL证书路径

    2.get()方法:

    requests.get(url, params=None, **kwargs)

    url: 拟获取页面的url链接

    params: url中的额外参数,字典或字节流,可选择

    **kwargs:12个控制访问的参数,就是requests中除params参数

    3.head()方法

    requests.head(url, **kwargs)

    url: 拟获取页面的url链接

    **kwargs:13个控制访问的参数

    4.post()方法

    requests.post(url,  data=None, json=None, **kwargs)

    url: 拟获取页面的url链接

    data: 字典,字节序列或文件,Requests的内容

    json: JSON格式的数据,Requests的内容

    **kwargs:11个控制访问的参数

    5.put()方法

    requests.put(url,  data=None, **kwargs)

    url: 拟获取页面的url链接

    data: 字典,字节序列或文件,Requests的内容

    **kwargs:12个控制访问的参数

    6.patch()方法

    requests.patch(url,  data=None, **kwargs)

    url: 拟获取页面的url链接

    data: 字典,字节序列或文件,Requests的内容

    **kwargs:12个控制访问的参数

    7.delete()方法

    requests.delete(url, **kwargs)

    url: 拟删除页面的url链接

    **kwargs:13个控制访问的参数

    Response对象

    使用requests方法后,会返回一个response对象,其存储了服务器响应的内容,

    常用属性:

    r.status_code #HTTP响应状态码,200表示响应成功,404表示失败

    r.content #HTTP响应内容的二进制形式

    r.text #字符串方式的响应体,

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

    (要注意区分r.headers,与前面的headers参数字段,前者只是Response对象的一个属性,后者是传递的参数)

    r.encoding#从HTTP头header中提取响应内容的编码方式(这个编码方式不一定存在)

    r.apparent_encoding#从内容中分析出响应内容的编码方式(这个编码方式是绝对正确的)

    r.raw #返回原始响应体,也就是 urllib 的 response 对象,使用 r.raw.read() 读取

    在这里有一个比较特殊的属性: r.request.headers可以查看HTTP请求的头部,注意区分r.headers

    常用方法:

    r.raise_for_status() #失败请求(非200响应)抛出requests.HTTPError异常

    Requests库的异常:

    requests.ConnectionError: 网络连接错误异常,如DNS查询失败,拒接连接等

    requests.HTTPError: HTTP错误异常

    requests.URLRequired: URL缺失异常

    requests.TooManyRedirects: 超过最大重定向次数,产生的重定向异常

    requests.ConnectTimeout: 远程连接服务器异常超时

    requests.Timeout: 请求URL超时,产生的超时异常

    展开全文
  • (1)安装requests库:pip install requests (2)导入requests库:import requests (3)构造一个向服务器请求资源的request对象,例如:requests.get(url) (4)获取一个包含服务器资源的response对象,例如:res...

    网络爬虫是一种程序,它的主要目的是将互联网上的网页下载到本地并提取出相关数据。网络爬虫可以自动化的浏览网络中的信息,然后根据我们制定的规则下载和提取信息。

    网络爬虫应用场景:搜索引擎抓取商业数据舆情分析自动化任务

    HTTP基础

    HTTP(Hyper Text Transfer Protocol,超文本传输协议)是互联网上应用最广泛的一种网络协议。所有的网络文件都必须遵守这个标准,设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法,HTTP是一种基于"请求与响应"模式的、无状态的应用层协议。

    HTTP协议采用URL(Uniform Resource Locator,统一资源定位器)作为定位网络资源的的标识符。URL由4部分组成:协议、主机、端口、路径。URL的一般语法格式为: protocol://hostname[:post]/[path]

    • protocol:协议名,例如HTTP、HTTPS、FTP等
    • hostname:合法的Internet主机域名或 ip地址
    • port:端口号,默认为80
    • path:请求资源的路径

    例如:

    https://ke.qq.com/course/package/29718

    https://blog.csdn.net/Dream_Gao1989

    可以简单的把HTTP请求理解为从客户端到服务器端的请求消息。无论是人在操作浏览器还是爬虫,当希望从服务器请求服务或信息时,就需要首先向服务器端发出一个请求,然后服务器返回响应,最后连接关闭,这就是Web服务的流程。

    HTTP对资源的操作方法及说明

    以上方法中,GET、HEAD是从服务器获取信息到本地,PUT、POST、PATCH、DELETE是从本地向服务器提交信息。

    请求头:包含许多有关客户端环境和请求正文的有用信息。一般网站服务器最常见的反爬虫措施就是通过读取请求头部的用户代理(UserAgent)信息来判断这个请求是来自正常的浏览器还是爬虫程序。

    常见的请求头及其含义


     requests库详解

    requests 库是用Python语言编写,用于访问网络资源的第三方库,它基于urllib,但比 urllib更加简单、方便和人性化。通过requests库可以帮助实现自动爬取HTML网页页面以及模拟人类访问服务器自动提交网络请求。

    (1)安装requests库:pip install requests

    (2)导入requests库:import requests

    (3)构造一个向服务器请求资源的request对象,例如:requests.get(url)

    (4)获取一个包含服务器资源的response对象,例如:res=requests.get(url)

    (5)获取响应内容,例如:res.text、res.content 等

    requests库的主要方法

    通过查看源代码,可知get()、post()、head()、put()、patch()、delete()方法内部其实都是调用了request()方法,只是传递的method参数不同。

    request(method, url,**kwargs):用于创建和发送一个Request请求。method参数用于指定创建Request请求的方法,有GET、POST、OPTIONS、PUT、HEAD、PATCH、DELETE等。url表示拟访问页面的网址,kwargs表示控制访问的可选参数,有params、data、json、headers、cookies、files、auth、timeout、allow_redirects、proxies、verify、stream、cert 等。该方法最终返回一个Response对象。

    Kwargs可选参数

    • params:字典类型,作为参数增加到url中,例如get方法传递参数;

    • data : 字典、字节序列或文件对象,作为Request对象的内容;

    • json:JSON格式的数据,作为Request的内容;

    • headers:字典类型,HTTP定制头,例如设置User-Agent ;

    • cookies: 字典或CookieJar, Request中的cookie;

    • auth : 元组,支持HTTP认证功能;

    • files: 传输文件,字典类型,键为参数名,值为文件对象;

    • timeout: 设定超时时间,单位为秒;

    • proxies: 字典类型,设定访问代理服务器;

    • allow_redirects : 是否允许重定向,默认为True;

    • stream: 是否以字节流的形式获取内容并下载,下载文件时经常用到;

    • verify: 是否验证SSL证书,默认为True;

    • cert:本地SSL证书路径。

      response对象的主要属性

    对于encoding属性来说,如果header中不存在charset,则认为编码是ISO-8859-1,text属性根据encoding属性的编码方式显示网页内容,当编码方式不一致时,可能会出现乱码。apparent_encoding属性根据网页内容分析出的编码方式,可以看做是encoding属性的备选。

    requests访问时可能的异常

    response对象中提供了一个raise_for_status()方法,该方法内部对状态码status_code进行判断,如果状态码不是200,将会抛出 HttpError异常。


    代码实践

    (1)使用requests访问网页的通用框架

    def get_text_from_web(url):
        """获取网页内容,url表示网址"""
        headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64)"}  # 构建请求头
        try:  # 访问网络可能发生异常
            res = requests.get(url, headers=headers, timeout=20)  # 发送请求,响应时间为20秒
            res.raise_for_status()  # 如果状态码不是200则抛出异常
            res.encoding = res.apparent_encoding  # 设置编码格式,避免乱码
            print(res.request.headers)
            return res.text  # 返回获取的内容
        except Exception as e:  # 捕获异常
            print("产生异常", e)
    print(get_text_from_web("https://baidu.com"))

    (2)使用requests下载图片

    def download_img(target_url):
        file_name = target_url.split(r"/")[-1]  # 获取文件名
        headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64)'}  # 构建请求头
        try:
            res = requests.get(target_url, headers=headers)  # 发送请求
            res.raise_for_status()
            with open(file_name, mode="wb") as fp:
                fp.write(res.content)
        except Exception as e:
            print("抛出异常,", e)
    
    
    url = "https://www.shanghairanking.cn/_uni/logo/86350223.png"
    download_img(url)

    (3)使用requests发送get请求传递参数

    
    def get_schools(province_code, school_type, page="1"):
        url = "https://kaoyan.cn/school/index"
        params = {"province_code": province_code, "pro_school_type": school_type, "page": page}
        headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64)'}  # 构建请求头
        try:
            res = requests.get(url, params=params, headers=headers)
            res.encoding = res.apparent_encoding
            res.raise_for_status()
            print(res.request.url)  # 输出请求网址
            return res.text
        except Exception as e:
            print("抛出异常,", e)
    
    
    print(get_schools("11", "综合类", 2))  # 11 北京市, 2 表示第2页

    (4)使用requests发送post请求传递参数

    def get_train_info(start, end):
        url = "https://huoche.911cha.com/"
        data = {"chufa": start, "daoda": end}
        headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64)'}  # 构建请求头
        try:
            res = requests.post(url, data=data, headers=headers)  # 发送 post 请求
            res.encoding = res.apparent_encoding
            res.raise_for_status()
            print(res.request.headers)
            return res.text
        except Exception as e:
            print("抛出异常,", e)
    print(get_train_info("南昌", "九江"))

    (5)使用requests下载视频并显示下载进度

    def down_video(url, video_type="mp4"):  # 下载视频,默认类型为mp4
        file_name = str(time.time()) + "." + video_type  # 保存的文件名
        try:
            headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64)"}
            r = requests.get(url, headers=headers, stream=True)  # 发送请求
            r.raise_for_status()  # 验证状态
            content_length = int(r.headers["content-length"])  # 获取视频文件大小
            print("文件大小为:{} 字节".format(content_length))
            buffer_size = 2048  # 缓存大小,即每次读取的字节数
            size_downloaded = 0  # 记录下载内容大小
            with open(file_name, "wb") as fp:  # 将下载的数据保存到文件
                for data in r.iter_content(buffer_size):  # 迭代获取数据
                    fp.write(data)  # 向文件中写入数据
                    size_downloaded += len(data)  # 统计已下载数据大小
                    print("\r当前下载进度为:{:.2f} %".format(size_downloaded / content_length * 100), end="")
            print("\r下载完成!")
        except Exception as e:
            print("抛出异常:", e)  # 打印异常信息
    
    target_url = "http://asset.greedyai.com/course/RGZNXLY/videos-ch1-Intro_ai_intro.mp4"
    down_video(target_url)

    相关代码资源,可关注Python资源分享 微信公众号,回复 request 即可获取。

    完整的课件下载地址:Python网络爬虫课件(含多个实例)-Python文档类资源-CSDN下载

    展开全文
  • 1. requests 的几个主要方法 方法 说明 requests.request() 构造一个网页请求,支撑以下各方法的基础方法 requests.get() 获取HTML网页的主要方法,对应于HTTP的GET requests.head() 获取HTML...
  • requests库的使用(一篇就够了)

    万次阅读 多人点赞 2022-01-05 20:30:26
    为了更加方便的实现这些操作,就有了更为强大的requests库。 基本用法 请先参考requests库安装一节,确保安装了requests库。下面案例使用requests库中的get( )方法发送了一个get请求。 #导入requests库 import ...
  • Python中requests库

    千次阅读 多人点赞 2022-02-28 12:46:53
    文章目录requests库一、 基本概念1、 简介2、 获取3、 http 协议3.1 URL3.2 常用 http 请求方法二、 使用方法1、 基本语法requests ...requests库 一、 基本概念 1、 简介 requests 模块是 python 基于 urllib,采用 A
  • requests库的使用 1.requests库概述   requests库是一个简洁且简单的处理HTTP请求的第三方库,它的最大优点是程序编写过程更接近正常URL访问过程。这个库建立在Python 语言的 urllib3库的基础上,类似这种在其他...
  • Requests库常用方法及参数介绍

    千次阅读 2022-03-11 12:10:10
    Requests库常用方法及参数介绍 Requests 库中定义了七个常用的请求方法,这些方法各自有着不同的作用,在这些请求方法中 requests.get() 与 requests.post() 方法最为常用。请求方法如下所示: 常用请求方法 ...
  • 基于pycharm的requests库使用教程

    千次阅读 2022-01-14 10:27:56
    文章目录requests库安装和导入requests库的一个类型六个属性requests库的get请求requests库的post请求requests库的代理requests库的cookie自动识别验证码 requests库安装和导入 第一步:cmd打开命令行,使用如下命令...
  • python爬虫——requests库的使用

    千次阅读 2021-11-11 10:42:11
    python爬虫—requests库的用法 requests是python实现的简单易用的HTTP库,使用起来比urllib简洁很多,requests 允许你发送 HTTP/1.1 请求。指定 URL并添加查询url字符串即可开始爬取网页信息等操作 因为是第三方库,...
  • 【python教程】requests库的基本用法

    千次阅读 多人点赞 2022-04-13 22:44:03
    requests是一个很实用的Python HTTP客户端,爬虫和测试服务器响应数据时经常会用到,requests是Python语言的第三方的,专门用于发送HTTP请求,使用起来比urllib简洁很多。 往期知识点 往期内容回顾 python...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 137,843
精华内容 55,137
关键字:

requests库

友情链接: KMSPico.zip