Python之pycurl

pycurl简介

pycurl是一个用于访问URL的Python模块。它可以使用libcurl来访问各种互联网资源。libcurl支持HTTP、HTTPS、FTP、GOPHER、DICT、TFTP、TELNET和FILE等许多协议。pycurl是将libcurl封装成Python模块的结果,因此,它既可以在Python脚本中直接使用,也可以在动态状态下使用。

pycurl的安装

不的情况下使用命令pip install --user -i https://pypi.tuna.tsinghua.edu.cn/simple pycurl安装pycurl模块。

然后写简单demo测试一下是否安装成功。
如果报错如下

ImportError: dlopen(/xxx/site-packages/pycurl.cpython-39-darwin.so, 2): Library not loaded: @rpath/libssl.1.1.dylib
  Referenced from: /xxx/site-packages/pycurl.cpython-39-darwin.so
  Reason: image not found

则是可能是安装路径不对,输入下面的名称重新安装

which python3
${path} -m pip install --force-reinstall pycurl

Python之pycurl_第1张图片
重新安装后可以正常使用pycurl模块了。

pycurl示例

import pycurl
from io import BytesIO


class PyCurl(object):
    def __init__(self):
        print("initializing")

    @staticmethod
    def printContents(url):
        # pycurl模块中的Curl类实例化
        c = pycurl.Curl()
        # 两个参数option和value,配置选项可以是url、字符串、header头等信息
        c.setopt(c.URL, url)
        # User-Agent用户代理,使得服务器能够识别用户使用的操作系统及版本、CPU类型、浏览器及版本、浏览器渲染引擎、浏览器语言、浏览器插件等信息。
        headers = ['User-Agent: Mozilla/5.0', 'Accept-Language: en']
        c.setopt(c.HTTPHEADER, headers)
        # 发送请求
        c.perform()
        # 资源回收
        c.close()
        # 内存中的缓冲区
        buffer = BytesIO()
        body = buffer.getvalue()
        # 打印缓冲区中的数据(UTF-8解码后的数据)
        print(body.decode('UTF-8'))


if __name__ == "__main__":
    curl = PyCurl()
    curl.printContents("https://example.com")

Python之pycurl_第2张图片

参考链接:
1、python官网
2、菜鸟教程_func_curl_setopt
3、极客教程_BytesIO

你可能感兴趣的:(python,开发语言)