精华内容
下载资源
问答
  • python使用
    万次阅读 多人点赞
    2021-01-04 10:45:46

    目录

    HTTP全局代理:环境变量方式

    HTTP全局代理:代码实现方式

    SOCKS全局代理

    针对部分请求设置代理


    本文介绍几种在Python里使用代理的方式,假定代理运行在本机,HTTP代理端口为1231, SOCKS5代理端口为8080。

    HTTP全局代理:环境变量方式

    在命令行里配置如下环境变量,然后执行Python脚本,Python在进行网络请求时就会使用配置的代理。

    export http_proxy="http://127.0.0.1:1231"
    export https_proxy="http://127.0.0.1:1231"
    

    HTTP全局代理:代码实现方式

    也可以在Python代码里添加如下内容,效果与上面的方式相同:

    import os
    os.environ["http_proxy"] = "http://127.0.0.1:1231"
    os.environ["https_proxy"] = "http://127.0.0.1:1231"
    

    SOCKS全局代理

    通过设置环境变量的方式通常只能使用HTTP代理。要使用全局SOCKS代理可以使用tsocks.

    安装tsocks后,编辑/etc/tsocks.conf,以使用端口为8080的本地SOCKS5代理为例:

    server = 127.0.0.1
    server_port = 8080 
    server_type = 5
    

    配置完成后在原来的脚本执行命令前添加tsocks即可使用,例如:

    tsocks python3 myscript.py
    

    针对部分请求设置代理

    前面的几种方式会为所有的HTTP请求设置代理,如果只想让部分请求使用代理,可以使用requests的proxies参数:

    import requests
    proxies = {'http': "socks5://127.0.0.1:8080",
               'https': "socks5://127.0.0.1:8080"}
    print(requests.get(url, proxies=proxies).content)
    

    例如下载图片,可使用:

    with requests.get(url, proxies=proxies, stream=True) as r:
        if r.status_code != 200:
            return
        with open(path, 'wb') as f:
            for chunk in r.iter_content(chunk_size=8192): 
                f.write(chunk)

     

     

    更多相关内容
  • Python使用pip安装Numpy模块

    万次阅读 2021-01-05 20:59:10
    python版本:python-3.9.1 操作系统:Windows10 想要安装的模块:numpy 前提 使用pip安装模块,需要保证pip为最新版本。如果使用pip时出现问题提示: You should consider upgrading via the 'python -m pip ...

    环境

    python版本:python-3.9.1    操作系统:Windows10    想要安装的模块:numpy

     

    前提

    使用pip安装模块,需要保证pip为最新版本。如果使用pip时出现问题提示:

    You should consider upgrading via the 'python -m pip install --upgrade pip' command.

    则可以进行pip更新,在cmd下输入:

    python -m pip install --upgrade pip

    更新成功后会显示:successfully installed 版本号.

     

    pip安装模块

    方法一:直接使用 pip install + 要安装的模块名称 (pip install numpy)

    因为此方法会Collection pillow收集有关 numpy 的信息,找到之后自动下载。在我的环境下安装未成功,尝试了几种方法之后都未能解决,决定尝试其他方法。

    方法二:提前下载相应模块,手动安装

    (1)在该网址的搜索框中搜索模块numpy:https://pypi.org/project/numpy/#files

    (2)点击第一个结果后,选择左侧的download files,显示如下

    (3)选择相应版本:numpy-1.19.4-cp39-cp39-win_amd64.whl  进行下载,

    该文件为numpy的1.19.4版本,cp39表示适用于python3.9,win_amd64表示适用于Windows64位系统。

    下载完成将其拷贝到python安装路径的Scripts文件夹下面。

    (4)打开cmd,跳转到当前路径,具体为: (步骤a) 盘符:      (步骤b) cd  绝对路径。输入指令:

    pip install numpy-1.19.4-cp39-cp39-win_amd64.whl

    完成安装过程。

     

    pycharm中import模块numpy

    用如下代码验证即可:

    from numpy import *
    print(random.rand(4,4))

    如果能够输出随机矩阵,即安装成功

    注:此时上图红框中应该为python的安装路径中的python.exe可执行文件,如果不是需要修改虚拟运行环境。

     

    pycharm修改虚拟运行环境

    file  - settings  - project :pythonProject - python interpreter ,可以看到当前环境拥有的模块,可以看到numpy,代表已经安装成功。

    如果未显示numpy,可能是python interpreter 错误。点击右侧绿色圆圈中的按钮可以重新设置运行环境。

    点击左下角的➕,可以添加虚拟运行环境,其中的Base interpreter 需要选择python安装路径下的python.exe文件,确定保存即可。

    展开全文
  • python 使用 httpx 发送http2.0 请求

    万次阅读 2020-08-06 17:45:37
    python 使用 httpx 发送http2.0 请求

    摘要

    python中最早支持HTTP/2的是hyper,但这个库近几年都不更新了。最近这批开发人员又出了一个新库,用来支持HTTP/2hyper-h2,这个库看提交时间是最近才开始开发的,不过目前看来还没有支持异步的计划。

    这里,我要介绍的是另一个HTTP/2的库httpx,也是新开发的,准确的来说还是beta版本。同时支持HTTP/1.1HTTP/2。而且还支持发送异步请求。就笔者写这篇文章的时候,这个项目的star已经有5.3k了。
    httpx官方文档地址,如果觉得笔者啰嗦,可以直接阅读官方文档,下面文章只是一篇简单的教程。

    安装

    # 只支持 python3.6 以上版本
    pip install httpx
    

    http/2 支持

    客户端请求

    更有效地利用网络资源

    当您使用《快速入门》指南中记录的顶级API进行请求时,HTTPX必须为每个单个请求建立一个新的连接(连接不会被重用)。随着对主机的请求数量增加,这很快变得效率低下。

    另一方面,Client实例使用HTTP连接池。这意味着当您向同一主机发出多个请求时,它们Client将重用基础的TCP连接,而不是为每个单个请求重新创建一个。

    与使用顶级API相比,这可以带来显着的性能改进,包括:

    1. 减少了请求之间的延迟(无握手)。
    2. 减少CPU使用率和往返次数。
    3. 减少网络拥塞。
    额外功能

    Client 实例还支持顶级API所不具备的功能,例如:

    1. Cookie跨请求的持久性。
    2. 在所有传出请求中应用配置。
    3. 通过HTTP代理发送请求。
    4. 使用HTTP / 2。

    一般建议:建议使用a Client作为上下文管理器。这将确保离开with模块时正确清理连接:

    同步

    >>> headers = {'X-Auth': 'from-client'}
    >>> params = {'client_id': 'client1'}
    >>> with httpx.Client(headers=headers, params=params, http2=True) as client:
            # with 内部请求共用一个client,参数也共用
    		# 替换client的参数
    ...     headers = {'X-Custom': 'from-request'}
    ...     params = {'request_id': 'request1'}
    ...     r = client.get('https://example.com', headers=headers, params=params)
    

    异步

    async with httpx.AsyncClient(http2=True) as client:
        ...
    

    复杂示例,APNS异步推送到多用户

    可参考完整实现代码

    import httpx
    import asyncio
    
    async def http2conn(device_token, client, content):
        r = await client.post(f"/3/device/{device_token}", json=content)
        logger.info('ios push: ' + device_token)
        logger.info(r.status_code)
    
    # 您可以参考apple apns官方文档,重组下面的推送参数
    # 此函数可以在协程中直接调用
    async def ios_push(title, text, product, product_id, device_tokens='', **kwargs):
        """
        kwargs={'product':'', 'product_id': '产品id', 'device_token': 'device_token'}
        """
        content = {
            "aps": {
                "alert": {
                    "title": title,
                    "body": text,
                },
            },
            "classify": product,
            "carousel_id": product_id,
        }
        path = 'dev_certificates.pem'
        device_tokens = device_tokens.split(',')
        number = len(device_tokens) // 1000
        async with httpx.AsyncClient(base_url=settings.IOS_URL, cert=path, http2=True) as client:
            http2conn_def = partial(http2conn, client=client, content=content)
            for i in range(number + 1):
                limit = i * 1000
                await asyncio.gather(*[http2conn_def(device_token) for device_token in device_tokens[limit:limit + 1000]])
    
    

    http/1 支持

    简单请求

    >>> r = httpx.get('https://httpbin.org/get')
    >>>> r = httpx.post('https://httpbin.org/post', data={'key': 'value'})
    >>> r = httpx.put('https://httpbin.org/put', data={'key': 'value'})
    >>> r = httpx.delete('https://httpbin.org/delete')
    >>> r = httpx.head('https://httpbin.org/get')
    >>> r = httpx.options('https://httpbin.org/get')
    

    携带参数,文件,自定义请求头

    >>> files = {'upload-file': ('report.xls', open('report.xls', 'rb'), 'application/vnd.ms-excel')}
    >>>> headers = {'user-agent': 'my-app/0.0.1'}
    >>> cookies = {"peanut": "butter"}
    >>> r = httpx.post('https://httpbin.org/post', data={'key': 'value'}, headers=headers, files=files, cookies=cookies)
    
    >>> r.headers
    Headers({
        'content-encoding': 'gzip',
        'transfer-encoding': 'chunked',
        'connection': 'close',
        'server': 'nginx/1.0.4',
        'x-runtime': '148ms',
        'etag': '"e1ca502697e5c9317743dc078f67693f"',
        'content-type': 'application/json'
    })
    >>> r.status_code
    

    同步

    >>> headers = {'X-Auth': 'from-client'}
    >>> params = {'client_id': 'client1'}
    >>> proxies = {
    ...     "http": "http://127.0.0.1:3080",
    ...     "https": "http://127.0.0.1:3081"
    ... }
    >>> with httpx.Client(headers=headers, params=params, proxies=proxies) as client:
    ...     headers = {'X-Custom': 'from-request'}
    ...     params = {'request_id': 'request1'}
    ...     r = client.get('https://example.com', headers=headers, params=params)
    

    异步

    HTTPX默认情况下提供标准的同步API,但是如果需要,还可以为您提供异步客户端的选项。
    异步是一种并发模型,其效率远远高于多线程,并且可以提供显着的性能优势并支持使用长期存在的网络连接(例如WebSockets)。

    import asyncio
    import httpx
    
    async def main():
        async with httpx.AsyncClient() as client:
            response = await client.get('https://www.example.com/')
            print(response)
    
    asyncio.run(main())
    

    总结

    http/1http/2 的API基本一致,可参靠上述实现http/1,另外http/2只支持客户端方式请求。
    这里只是简单的介绍,如需要复杂的功能(流式传输,代理请求,SSL证书,.netrc支持等)还是仔细研读官方文档以及源码。

    展开全文
  • Python使用captcha制作验证码

    万次阅读 2019-05-07 14:05:52
    使用Keras搭建验证码识别模型时,需要大量的验证码图片。在这里,使用captcha模块生成验证码图片,验证码图片名称为验证码上显示的字符串。 1 生成单张验证码图片并显示 生成一张验证码的代码如下: from captcha....

    在使用Keras搭建验证码识别模型时,需要大量的验证码图片。在这里,使用captcha模块生成验证码图片,验证码图片名称为验证码上显示的字符串。

    1 生成单张验证码图片并显示

    生成一张验证码的代码如下:

    from captcha.image import ImageCaptcha
    import matplotlib.pyplot as plt
    import numpy as np 
    import random
    import string
    
    #characters为验证码上的字符集,10个数字加26个大写英文字母
    #0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ str类型
    characters=string.digits+string.ascii_uppercase
    
    width,height,n_len,n_class=170,80,4,len(characters)
    
    #设置验证码图片的宽度widht和高度height
    #除此之外还可以设置字体fonts和字体大小font_sizes
    generator=ImageCaptcha(width=width,height=height)
    
    #生成随机的4个字符的字符串
    random_str=''.join([random.choice(characters) for j in range(4)])
    
    #生成验证码
    img=generator.generate_image(random_str)
    
    #显示验证码图片和验证码标题
    plt.imshow(img)
    plt.title(random_str)
    plt.show()
    
    

    程序运行结果为:
    在这里插入图片描述

    2 验证码图片的显示与保存

    上面代码中生成的验证码是PIL图像格式,因此也可以直接使用PIL自带的show方法显示图片,save方法保存图片
    如下:

    #显示验证码
    img.show()
    
    #保存验证码
    file_name=random_str+'.jpg'
    img.save(file_name)
    

    在这里插入图片描述

    3 批量生成验证码样本集

    当我们在深度学习中,进行验证码进行字符识别,需要大量的图片,因此我们可以批量生成大量的样本。这里以生成一万张样本为例。
    代码如下:

    from captcha.image import ImageCaptcha
    import matplotlib.pyplot as plt
    import numpy as np 
    import random
    import string
    from PIL import Image
    
    #characters为验证码上的字符集,10个数字加26个大写英文字母
    #0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ str类型
    characters=string.digits+string.ascii_uppercase
    
    width,height,n_len,n_class=170,80,4,len(characters)
    
    #生成一万张验证码
    for i in range(10000):
        generator=ImageCaptcha(width=width,height=height)
        random_str=''.join([random.choice(characters) for j in range(4)])
        img=generator.generate_image(random_str)
    
        #将图片保存在目录yzm文件夹下
        file_name='./yzm/'+random_str+'_'+str(i)+'.jpg'
        img.save(file_name)
    

    当程序执行完,会在文件夹yzm下生成一万张验证码图片
    在这里插入图片描述

    展开全文
  • Ubuntu下Python使用指南

    千次阅读 2019-04-27 18:22:04
    Ubuntu下python配置 Ubuntu简单解决多版本python切换以及多版本pip对应问题 python及库在linux下的目录 在ubuntu下pip需要自行安装 sudo apt-get update sudo apt-get install python3-pip #安装python3.x的pip ...
  • python使用m3u8库解析m3u8文件

    万次阅读 2021-06-24 21:25:47
    pip install m3u8 if __name__ == '__main__': play_list = m3u8.load('... for index, segment in enumerate(play_list.segments): ur = segment.uri print(ur)
  • python使用相对路径问题

    千次阅读 2018-10-24 09:22:49
    如果使用python相对路径,一定要知道当前路径。因为相对路径相对的就是当前路径。 (1)Edit configurations (2)working directory中就是当前的地址了 然后就可以通过 path='./xxx/xxx/xxx' 来设置相对...
  • python使用snappy压缩

    千次阅读 2017-02-08 19:48:51
    今天在网上找了很久,终于找到1个snappy压缩命令行,记录下来:1.wget ...3.yum install gcc-c++4.pip install python-snappy用法:python -m snappy -c uncompressed_file compressed_f
  • python使用while循环,输出1-100的奇数和偶数(奇数偶数没分开): a=1 while a<=100: if a%2==0: print(“偶数:%s” %c) else: print(“奇数:%s” %c) a+=1
  • Python 使用清华大学镜像源

    万次阅读 多人点赞 2019-05-09 17:12:18
    那么可以使用 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple 要下的包名 如果是永久修改镜像源 pip install pip -U pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple 如果...
  • python 使用 UTF-8 编码

    万次阅读 2018-01-12 16:28:31
    一般我喜欢用 utf-8 编码,在 python 怎么使用呢? 使用utf-8 文字 在 python 源码文件中用 utf-8 文字。一般会报错,如下: File "F:\workspace\psh\src\test.py", line 2 SyntaxError: Non-ASCII character...
  • python 使用循环求1~100的和,积

    万次阅读 2020-03-13 11:57:24
    #计算1-100之间的整数和 sum = 1 for i in range(2,101): sum += i print(sum) #或者 sum = 0 for i in range(1,101): sum += i print(sum) #计算1-100之间的整数乘积 sum = 1 for i in range(2,101): ......
  • Python使用及交互方式

    千次阅读 2021-09-18 16:17:17
    1、交互模式启动python 2、交互模式退出python 3、交互模式python的输入输出数据 4、pycharm开发工具输出数据 5、单行注释与多行注释 6、交互模式输出多行古诗词 7、pycharm开发工具输出古诗词 8、pycharm...
  • ​ 在Python的变量使用中,经常会遇到这样的错误: local variable 'a' referenced before assignment 它的意思是:局部变量“a”在赋值前就被引用了。 ​ 比如运行下面的代码就会出现报错这样的问题: a = 3 ...
  • Python使用https请求的方法

    千次阅读 2021-02-10 12:03:48
    Python使用https请求的方法发布时间:2020-07-17 11:13:34来源:亿速云阅读:139作者:清晨这篇文章主要介绍Python使用https请求的方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!...
  • python使用SocketServer实现网络服务器SocketServer简化了网络服务器的编写。在进行socket创建时,使用SocketServer会大大减少创建的步骤,并且SocketServer使用了select它有4个类:TCPServer,UDPServer,...
  • Python 使用readability 提取网页标题

    万次阅读 2021-05-13 23:45:17
    本文仅供学习交流使用,如侵立删!联系方式及demo下载见文末 readability 安装 pip install readability-lxml PS:readability有两个版本一个readability,一个readability-lxml注意不要装错。 readability ...
  • 找到python的安装目录,我的是 F:\Installation position\Python\Python37-32\ ...而使用pip下载的第三方库就存于以下目录: F:\Installation position\Python\Python37-32\Lib\site-packages  ...
  • 当分别使用request和checkcode时均没有问题,但是,将两个模块都导入后,写日志就出现异常.总是一个能写日志,一个不能写日志.原因因为两个文件中都是使用logging配置文件的方式创建logger,而且这两个模块都使用的不是同...
  • python使用goto的正确用法

    万次阅读 热门讨论 2020-08-26 11:34:34
    看了一篇文章,都是直接官网的列子,根本不能用,所以自己搜集了资料,接下来介绍 这三个包是要用的,而不是只有最后一个 import goto from dominate.tags import label from goto import with_goto 这个...谨慎使用
  • python中,提到如何计算多维数组和矩阵,那一定会想到numpy。numpy定义了矩阵和数组,为它们提供了相关的运算。size中文解释为大家、尺寸的意思,如果想要统计矩阵元素个数,使用size()函数就可以解决。1、Numpy ...
  • python使用pandas获取数据行名和列名

    千次阅读 2021-01-07 16:10:26
    python使用pandas读取csv数据: import pandas as pd df = pd.read_csv("filename.csv") 获取数据部分: data = df.values 获取行名: rownames = df.index 获取列名: colnames = df.columns
  • python使用pclpy实现PCD点云读取和显示

    万次阅读 热门讨论 2019-06-11 08:39:55
    通过python的pclpy依赖,可以在python使用pcl点云库的接口,调用其操作点云的方法。 最官方的pcl的python支持是python-pcl,但是我好长时间没有安装成功。有一次直接安装上了pclpy(可以提供过pip安装也可以在...
  • Python字符串函数使用详解

    千次阅读 多人点赞 2021-12-16 19:34:01
    Python的友好在于提供了非常好强大的功能函数模块,对于字符串的使用,同样提供许多简单便捷的字符串函数。Python 字符串自带了很多有用的函数,在字符串函数之前先介绍一个非常实用的dir()内置函数,因为对每一个...
  • Python base64简单使用

    万次阅读 2022-02-17 16:06:20
    最简单的加解密实例: import base64 str1 = 'askdhfiwqnshfdhnqpjdnfswadfjnvasfrnm=' str2 = base64.b64encode(str1) str3 = base64.b64decode(str2)
  • Python使用阿里云镜像

    万次阅读 多人点赞 2020-02-22 01:26:48
    Python使用阿里云镜像 临时使用 pip install -i https://mirrors.aliyun.com/pypi/simple/ 包名 以后都使用阿里云的源 pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/ ...
  • 一分钟学会Python中pip的安装与使用

    万次阅读 多人点赞 2021-06-13 19:52:05
    pip 是 Python 包管理工具,该工具提供了对Python 包的查找、下载、安装和卸载的功能,现在大家用到的所有包不是自带的就是通过pip安装的。Python 2.7.9 + 或 Python 3.4+ 以上版本都自带 pip 工具。给出pip官网链接...
  • Cygwin中自带的python使用

    千次阅读 2018-06-29 09:34:32
    1、Cygwin安装完成之后自带python,一开始以为只有python2版本,一直找方法想要使用win7系统自己安装的python3,找到以下方法:在windows下面安装的python一般都已经添加到了系统变量中。参照在在Cygwin中使用Python...
  • Python中for语句的使用方法

    千次阅读 2022-02-16 10:46:53
    Python中列表和字符串的使用方法请参考《Python中List的使用方法2-1》、《Python中List的使用方法2-2》、《Python中字符串的使用方法2-1》和《Python中字符串的使用方法2-2》。 1 基本语法 for语句的基本语法是: ...
  • Python使用HTTP代理 Proxy

    万次阅读 2017-03-12 09:50:11
    urllib2是Python标准库,功能很强大,只是使用起来稍微麻烦一点。在Python 3中,urllib2不再保留,迁移到了urllib模块中。urllib2中通过ProxyHandler来设置使用代理服务器。 proxy_handler = urllib2.ProxyHandler...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,440,384
精华内容 1,376,153
关键字:

python使用