Python3学习笔记:使用代理访问url地址

#! /usr/bin/env python3
# -*- coding:utf-8 -*-

‘python进行代理的curl数据提交‘

__author__ = ‘ken‘

import os;
import sys;

curPath = os.path.abspath(os.path.dirname(__file__));
sys.path.append(curPath);

import urllib.request;
import urllib.parse;
import socket;

class curl:
    def __init__(self):
        pass;

    # 获取用户浏览器信息
    def getUserAgent(self):
        userAgent = ‘Mozilla/5.0 (Windows NT 6.1; WOW64; rv:39.0) Gecko/20100101 Firefox/39.0‘;
        return userAgent;

    # 进行数据提交
    def run(self, url, param):
        self.url = url;
        self.param = param;
        self.userAgent = self.getUserAgent();
        self.proxyIpList = [‘117.135.196.197:55336‘, ‘117.158.98.214:80‘, ‘117.177.243.42:84‘, ‘117.177.243.42:85‘];

        data = urllib.parse.urlencode(self.param).encode(encoding=‘UTF8‘);
        req = urllib.request.Request(self.url, data);
        req.add_header(‘User-Agent‘, self.userAgent);

        for proxyIp in self.proxyIpList:
            socket.setdefaulttimeout(3);  # 3秒未响应则为超时,跳过执行下一条
            try:
                # 添加代理
                proxy_handler = urllib.request.ProxyHandler({‘http‘: proxyIp});
                proxy_auth_handler = urllib.request.ProxyBasicAuthHandler();
                opener = urllib.request.build_opener(proxy_handler, proxy_auth_handler);

                # 添加头信息
                opener.addheaders = [
                    (‘User-Agent‘, self.userAgent)
                ]

                # 数据请求
                response = opener.open(self.url, data);
                # 获取请求返还数据
                response_data = response.read().decode("utf8");
                print(proxyIp, "正确:" + response_data);
                # return response_data;
            except urllib.error.HTTPError as e:
                print(proxyIp, "错误:错误代码:", e.code);
                # print("错误内容:", e.read().decode("utf8"));
            except urllib.error.URLError as e:
                print(proxyIp, ‘错误:未能获取服务器信息.‘);
                # print(‘错误原因: ‘, e.reason);
            except:
                print(proxyIp, "错误:其他未知错误!");

# cu = curl();
# cu.run("www.test.com","{"key":123456789}");
时间: 2024-11-10 00:52:24

Python3学习笔记:使用代理访问url地址的相关文章

Python3学习笔记(urllib模块的使用)转http://www.cnblogs.com/Lands-ljk/p/5447127.html

Python3学习笔记(urllib模块的使用) 1.基本方法 urllib.request.urlopen(url, data=None, [timeout, ]*, cafile=None, capath=None, cadefault=False, context=None) -         url:  需要打开的网址 -         data:Post提交的数据 -         timeout:设置网站的访问超时时间 直接用urllib.request模块的urlopen()

Java学习笔记——动态代理

所谓动态,也就是说这个东西是可变的,或者说不是一生下来就有的.提到动态就不得不说静态,静态代理,个人觉得是指一个代理在程序中是事先写好的,不能变的,就像上一篇"Java学习笔记--RMI"中的远程代理,其中客户端服务对象就是一个远程服务对象的代理,这个代理可以使得客户在操作时感觉像在操作本地对象一样,远程对象对于客户是透明的.我们可以看出这里的远程代理,是在程序中事先写好的,而本节我们要讨论的远程代理,是由JVM根据反射机制,在程序运行时动态生成的.(以上是本人的理解,如果有不正确的地

Hadoop学习笔记0003——从Hadoop URL读取数据

Hadoop学习笔记0003--从Hadoop URL读取数据 从HadoopURL读取数据   要从Hadoop文件系统中读取文件,一个最简单的方法是使用java.net.URL对象来打开一个数据流,从而从中读取数据.一般的格式如下: InputStream in = null; try { in = new URL("hdfs://host/path").openStream(); // process in } finally { IOUtils.closeStream(in);

NEO学习笔记,从WIF到地址

2018开年,先给大家拜个年,Happy Neo Year. 开年总得写点什么,就打算继续开学习笔记系列,一点一点仔细的去分析NEO. 今天说一说从WIF到地址的这一串关系. ? 简单说就一张图: 或者他的简单版本 好了,写完了.^_^ ? 当然,如果你想要搞清楚他们之间具体的计算方法,我们接着往下看. 流程说明 细说WIF L13wAkUX1SAx6K9zztkS8RjxDMedBEzbtgZSZRYKUUBMP23BEgLM 这就是一个WIF,这串东西没什么意义,不用寻找他的意义了,他是一个

nodejs学习笔记<三>关于路由(url)

在网站开发中,路由的设置非常关键.nodejs对路由处理封装了一个比较全面的模块. 来认识下url模块 1)在命令行(cmd)可以直接 node —> url 可直接查看url模块的所有方法. 2)在js中通过require调用url模块.var url = require('url'); url包括:parse,resolve,resolveObject,format,Url 五个方法. 1)parse: parse用来解析url地址.同样可以直接用命令行(cmd)调用,也可以在js中通过ur

ThinkPHP 学习笔记(六) URL模式

1.URL大小写 ThinkPHP框架的URL是区分大小写(主要是针对模块.控制器和操作名,不包括应用参数)的,这一点非常关键,因为ThinkPHP的命名规范是采用驼峰法(首字母大写)的规则,而URL中的模块和控制器都是对应的文件,因此在Linux环境下面必然存在区分大小写的问题. 框架内置了一个配置参数用于解决URL大小写的问题,如下:     'URL_CASE_INSENSITIVE'=>true, 当URL_CASE_INSENSITIVE设置为true的时候表示URL地址不区分大小写,

python3学习笔记(1)

#python学习笔记 17/07/07# !/usr/bin/evn python3# -*- coding:utf-8 -*- #r"" 引号当中的字符串不转义 #练习#打印 '\\\t\n'print(r'\\\t\n') #打印 n = 123print('n = 123') # 打印 f = 456.789print("f = 456.789") #打印 s1 = 'Hello, world!'print("s1 = 'Hello, world!

用java程序直接访问URL地址

/**       * 程序中访问http数据接口       */      public static String getURLContent(String urlStr) {                     /** 网络的url地址 */           URL url = null;                    /** http连接 */       HttpURLConnection httpConn = null;                   /**/

maven 学习---Maven启用代理访问

如果你的公司正在建立一个防火墙,并使用HTTP代理服务器来阻止用户直接连接到互联网.如果您使用代理,Maven将无法下载任何依赖. 为了使它工作,你必须声明在 Maven 的配置文件中设置代理服务器:settings.xml. 1. Maven配置文件 找到文件 {M2_HOME}/conf/settings.xml, 并把你的代理服务器信息配置写入.注:{M2_HOME}  => D:\software\yiibai.com\apache-maven {M2_HOME}/conf/settin