python 代理
1.参考
http://docs.python-requests.org/en/master/user/advanced/
Using Python’s urllib2 or Requests with a SOCKS5 proxy
Python中Request 使用socks5代理的两种方法(个人推荐方法二)
How to make python Requests work via socks proxy
Connecting to a SOCKS Proxy within Python
Should you want to use the SOCKS proxy only with urllib2 then the wrapmodule can be used. This replaces a module's socket library with a SOCKS socket[2].
v3.2.0版本中新增的socks5代理设置选项是做什么的?
这个前置代理,应该是给 shadowsocks.exe 本身的代理设置,使得 它 自己走某个代理。因为有些公司,内网环境下需要代理才可以访问外网。
HTTP代理:能够代理客户机的HTTP访问,主要是代理浏览器访问网页,它的端口一般为80、8080、3128等;
SOCKS代理:SOCKS代理与其他类型的代理不同,它只是简单地传递数据包,而并不关心是何种应用协议,既可以是HTTP请求,所以SOCKS代理服务器比其他类型的代理服务器速度要快得多。SOCKS代理又分为SOCKS4和SOCKS5,二者不同的是SOCKS4代理只支持TCP协议(即传输控制协议),而SOCKS5代理则既支持TCP协议又支持UDP协议(即用户数据包协议),还支持各种身份验证机制、服务器端域名解析等。SOCK4能做到的SOCKS5都可得到,但SOCKS5能够做到的SOCK4则不一定能做到,比如我们常用的聊天工具QQ在使用代理时就要求用SOCKS5代理,因为它需要使用UDP协议来传输数据
1.5.socket代理
参见《python中的socket代理》可知,更底层的socket代理如下所示:
import socks, socket
socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, "proxy_host", proxy_port)
socket.socket = socks.socksocket
需要 socks 库。
tor?
2.urllib2
import urllib2
req = urllib2.Request('http://httpbin.org/ip')
req_https = urllib2.Request('https://httpbin.org/ip')
proxy_http = urllib2.ProxyHandler({'http':'http://127.0.0.1:1080'})
proxy_https = urllib2.ProxyHandler({'https':'https://127.0.0.1:1080'})
opener = urllib2.build_opener(proxy_http, proxy_https)
# urllib2.install_opener(opener)
print urllib2.urlopen(req).read()
print urllib2.urlopen(req_https).read()
print opener.open(req, timeout=10).read()
print opener.open(req_https, timeout=10).read()
3.requests
import requests
# proxies={'http': 'http://127.0.0.1:1080', 'https': 'http://127.0.0.1:1080'}
proxies={'http': 'socks5://127.0.0.1:1080', 'https': 'socks5://127.0.0.1:1080'}
# s.proxies = proxies
print requests.get('http://httpbin.org/ip').content
print requests.get('https://httpbin.org/ip').content
print requests.get('http://httpbin.org/ip', proxies=proxies, timeout=10).content
print requests.get('https://httpbin.org/ip', proxies=proxies, timeout=10).content
4.更加底层 socket.socket
# pip install requests[socks]
import socket
import socks
import requests default_socket = socket.socket def get():
print urllib2.urlopen('http://httpbin.org/ip', timeout=10).read()
print urllib2.urlopen('https://httpbin.org/ip', timeout=10).read()
print(requests.get('http://httpbin.org/ip', timeout=10).text)
print(requests.get('https://httpbin.org/ip', timeout=10).text) print 'no proxy:'
get() socks.set_default_proxy(socks.SOCKS5, '127.0.0.1', 1080)
socket.socket = socks.socksocket
print 'proxy:'
get() socket.socket = default_socket
print 'no proxy:'
get()
python 代理的更多相关文章
- python代理池的构建5——对mongodb数据库里面代理ip检查
上一篇博客地址:python代理池的构建4--mongdb数据库的增删改查 一.对数据库里面代理ip检查(proxy_test.py) #-*-coding:utf-8-*- ''' 目的:检查代理I ...
- python代理池的构建4——mongdb数据库的增删改查
上一篇博客地址:python代理池的构建3--爬取代理ip 一.mongdb数据库的增删改查(Mongo_pool.py) #-*-coding:utf-8-*- ''' 实现代理池的数据库模块 ●作 ...
- python代理池的构建3——爬取代理ip
上篇博客地址:python代理池的构建2--代理ip是否可用的处理和检查 一.基础爬虫模块(Base_spider.py) #-*-coding:utf-8-*- ''' 目标: 实现可以指定不同UR ...
- python代理池的构建2——代理ip是否可用的处理和检查
上一篇博客地址:python代理池的构建1--代理IP类的构建,以及配置文件.日志文件.requests请求头 一.代理ip是否可用的处理(httpbin_validator.py) #-*-codi ...
- python代理池的构建1——代理IP类的构建,以及配置文件、日志文件、requests请求头
一.整体结构 二.代理IP类的构建(domain.py文件) ''' 实现_ init_ 方法, 负责初始化,包含如下字段: ip: 代理的IP地址 port:代理IP的端口号 protocol: 代 ...
- python——代理ip获取
python爬虫要经历爬虫.爬虫被限制.爬虫反限制的过程.当然后续还要网页爬虫限制优化,爬虫再反限制的一系列道高一尺魔高一丈的过程. 爬虫的初级阶段,添加headers和ip代理可以解决很多问题. 贴 ...
- 爬虫的新手使用教程(python代理IP)
前言 Python爬虫要经历爬虫.爬虫被限制.爬虫反限制的过程.当然后续还要网页爬虫限制优化,爬虫再反限制的一系列道高一尺魔高一丈的过程.爬虫的初级阶段,添加headers和ip代理可以解决很多问题. ...
- python 代理的使用
这里分享一个测试ip的网址 http://ip.filefab.com/index.php scrapy 随机请求头和代理ip的使用原理 import random # 添加一个中间键 cla ...
- python代理爬取存入csv文件
爬取高匿代理 from urllib import request import re import time f = open('西1.csv','w',encoding='GBK') header ...
随机推荐
- Vim简明学习
前面的话 在linux云服务器上的编辑器默认是vim,类似于windows系统中的记事本,页面简洁,但入门不易.本文将介绍Vim的基础使用 操作模式 vim编辑器有三种模式: 1.命令模式(等待用户输 ...
- jsp篇 之 jsp中的注释
Jsp中的注释: 第一种: <!-- html/xml中的注释方式 --> 特点: 1.用户在浏览器中右键查看源代码 [能] 看到这个注释. 2.在服务器端,这个jsp页面被翻译成的jav ...
- 清北澡堂 Day 3 上午
1.数论函数的卷积公式 (ƒ*g)(n)=Σd|nƒ(d)×g(n/d) 已知f*[1~n],g[1~n] 怎么求(f*g)[1~n]? 一个个求复杂度O(n根号n) 如何加速? 考虑更换枚举顺序(这 ...
- P4783 【模板】矩阵求逆
原题链接 https://www.luogu.org/problemnew/show/P4783 一道模板题,更重要的省选难度..... 题目要求的是一个n*n的逆矩阵,还要对大数取膜. 普通高中生: ...
- [洛谷P1438] 无聊的数列
题目类型:差分,线段树 传送门:>Here< 题意:给出一个数列,每次给一个区间对应的加上一个等差数列,并询问某一个元素目前的值. 解题思路 所谓差分,我个人的理解就是用\(O(1)\)的 ...
- vscode设置python3.7调试环境(已更新)
汇总系列:https://www.cnblogs.com/dunitian/p/4822808.html#ai CentOS安装Python3.7:https://www.cnblogs.com/do ...
- windows telnet 模拟 http请求
1. 开启windows自带的telnet客户端(控制面板 --> 程序 --> 启用或关闭windows功能 --> ) 2. 打开cmd,使用Telnet客户端 3. 按ctrl ...
- DMA设计
目录 DMA设计 DMA框架 手册请看英文手册 芯片特性 请求来源 协议简述 基本时序 模式 协议 数据大小的描述 具体完整的实例时序 代码设计 驱动程序 测试程序 测试 参考链接 title: DM ...
- Django的admin视图的使用
要现在admin.py文件中将你要视图化操作的类进行注册: from django.contrib import admin from api import models # Register you ...
- 第九节:从源码的角度分析MVC中的一些特性及其用法
一. 前世今生 乍眼一看,该标题写的有点煽情,最近也是在不断反思,怎么能把博客写好,让人能读下去,通俗易懂,深入浅出. 接下来几个章节都是围绕框架本身提供特性展开,有MVC程序集提供的,也有其它程序集 ...