pycurl是一个用于访问URL的Python模块。它可以使用libcurl来访问各种互联网资源。libcurl支持HTTP、HTTPS、FTP、GOPHER、DICT、TFTP、TELNET和FILE等许多协议。pycurl是将libcurl封装成Python模块的结果,因此,它既可以在Python脚本中直接使用,也可以在动态状态下使用。
不的情况下使用命令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
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")
参考链接:
1、python官网
2、菜鸟教程_func_curl_setopt
3、极客教程_BytesIO