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 ...
随机推荐
- Listen 指令
L:44
- 数据分析---《Python for Data Analysis》学习笔记【02】
<Python for Data Analysis>一书由Wes Mckinney所著,中文译名是<利用Python进行数据分析>.这里记录一下学习过程,其中有些方法和书中不同 ...
- 自用windows小软件
好用的软件的定义:没有广告,提升效率,最低的内存占用,体积小 1.解压工具 bandizip:自动解压功能,棒呆了 网址:https://www.bandisoft.com/ 2.pdf阅读编辑工具 ...
- bash 字符串处理
bash 字符串处理 字符串切片:${var:offset:length}示例:[root@localhost ~]#mypath="/etc/sysconfig/network-scrip ...
- 监控MySQL|Redis|MongoDB的执行语句(go-sniffer)
上节回顾:https://www.cnblogs.com/dotnetcrazy/p/9986873.html 以CentOS为例: 1.环境 PS:如果不需要Golang环境,可以编译后把执行文件c ...
- pc安装完成charles成功,小米安装crt证书失败
问题描述: 今天在学习爬虫爬取APP内容时,需要安装crt证书.根据静谧大大的书,前面都挺顺利的.但在我的小米手机上安装crt证书时,出现了错误.手机显示无法安装. 解决之道: 1.不要用小米手机自带 ...
- mysql中replace替换字符串更改方法
MySQL中update替换部分字符串replace的简单用法 近日,遇到了需要将部分字符串替换为另外的字符,平时用的最多的是直接update整个字段值,在这种情况下效率比较低,而且容易出错.其实my ...
- Docker:dockerfile自动构建镜像 [六]
一.手动docker镜像的缺点 相对于手动制作的docker镜像,使用dockerfile构建的镜像有以下优点: 1.dockerfile只有几kb,便于传输 2.使用dockerfile构建出来的镜 ...
- npm install 之前做的事
在一个项目目录中,npm install之前,需要npm init,npm init会问你几个问题,有的需要输入,不想输入的一路回车就行,之后会自动创建一个package.json文件,有了这个pac ...
- Geometric regularity criterion for NSE: the cross product of velocity and vorticity 3: $u\times \f{\om}{|\om|}\cdot \f{\vLm^\be u}{|\vLm^\be u|}$
在 [Chae, Dongho; Lee, Jihoon. On the geometric regularity conditions for the 3D Navier-Stokes equati ...