zoukankan      html  css  js  c++  java
  • python3 代理设置

    前言:

    用过很多种代理使用方式,这里总结一下.

    1、urllib+socks5的代理1

        from sockshandler import SocksiPyHandler
        import socks
        from urllib.request import build_opener
    
        headers = {
            'Accept': 'text/html, application/xhtml+xml, image/jxr, */*',
            'Accept - Encoding': 'gzip, deflate',
            'Accept-Language': 'zh-Hans-CN, zh-Hans; q=0.5',
            # 'Connection': 'Keep-Alive',
            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36'
        }
    
    
        url = 'https://www.google.com/'
    
        proxy_handler = SocksiPyHandler(proxytype=socks.SOCKS5, proxyaddr='***', proxyport=0000, username='***', password='***')
        opener = build_opener(proxy_handler)
        opener.addheaders = [(k, v) for k, v in headers.items()]
        resp = opener.open(url, timeout=30)
    
        resp_html = resp.read()
        print(resp_html.decode())

     2、如果本机挂了Shadowsocks代理,代理端口为1080,则代码可以修改为:


      proxy_handler = SocksiPyHandler(proxytype=socks.HTTP, proxyaddr='127.0.0.1', proxyport=1080)

    3、urllib+socks5的代理2 

        from urllib.request import ProxyHandler, build_opener
    
        headers = {
            'Accept': 'text/html, application/xhtml+xml, image/jxr, */*',
            'Accept - Encoding': 'gzip, deflate',
            'Accept-Language': 'zh-Hans-CN, zh-Hans; q=0.5',
            # 'Connection': 'Keep-Alive',
            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36'
       }
       proxies = { "socks5": "socks5://user:pwd@ip:port" }
    
        url = 'https://www.baidu.com/'
    
        proxy_handler = ProxyHandler(proxies)
    
        opener = build_opener(proxy_handler)
        opener.addheaders = [(k, v) for k, v in headers.items()]
        resp = opener.open(url, timeout=30)
    
        resp_html = resp.read()
        print(resp_html.decode())

    以上代码可以运行,但是感觉速度要慢一些。以上测试了,如果本地http代理,可以写成:

    proxies = {
            "http": "http://127.0.0.1:1080/",
            "https": "https://127.0.0.1:1080/"
        }

    4、使用socks设置全局代理

        import socks
        import socket

    socks.set_default_proxy(proxy_type=socks.SOCKS5, addr="***", port=000, rdns=True, username='***', password='***') socket.socket = socks.socksocket

    安装socks:

     pip install PySocks

    # 会安装 socks 和 sockshandler 两个模块

    5、使用requests设置代理

        import requests as s
    
        headers = {
            'Accept': 'text/html, application/xhtml+xml, image/jxr, */*',
            'Accept - Encoding': 'gzip, deflate',
            'Accept-Language': 'zh-Hans-CN, zh-Hans; q=0.5',
            'Connection': 'Keep-Alive',
            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36'
        }
    
    
        proxies = {
            "http": "socks5://user:pwd@ip:port/",
            "https": "socks5://user:pwd@ip:port/"
        }
    
    
        # proxies = {
        #     "socks5": "socks5://user:pwd@ip:port"
        # }
    
        # proxies = {
        #     "http": "http://127.0.0.1:1080/",
        #     "https": "https://127.0.0.1:1080/"
        # }
    
        # url = 'https://www.google.com/'
        # url = 'https://search.yahoo.com/'
        url = 'https://www.baidu.com/'
    
        resp = s.get(url=url, proxies=proxies, headers=headers)
    
        print(resp.text)

      

  • 相关阅读:
    数据库读现象 数据库锁
    Mysql索引
    视图 触发器 内置函数 流程控制 事务 存储过程
    pymysql模块
    表相关操作
    初识数据库
    python 进程
    python常见错误和异常
    python课程设计--学生管理系统
    python-类的多态的理解
  • 原文地址:https://www.cnblogs.com/haoxr/p/9627477.html
Copyright © 2011-2022 走看看