python代理
1. python3 关于http 代理的一些问题
下面是我对浏览器请求过程的理解:
1.发送请求,得到响应
2.解析html,请求html里面的一些资源(图片、js、css等)
3.得到资源的响应。渲染。
以上在短连接模式下,每个请求都新建一个socket
我就是依照这个想法写的程序
2. python 验证代理是否有效
首先要从项目中遇到的一个问题说起。编写一个python文件test.py,文件test.py内容如下:
#! /usr/bin/python
....
如果在命令行方式执行test.py的方式是:
test.py -in inputfile -out outputfile;或python test.py -in inputfile -out outputfile;
但是因为需要,用exec函数(这里使用execl)去调用这个python文件。在项目中是这样写的:
execl(”test.py”,”-in”,”inputfile”,”-out”,”outputfile”,(char*)0);
但执行结果并不是预想的test.py执行,而是启动了python交互程序,不知道是什么原因。因为一直以为如果写一个C程序,比如main。那么在命令行输入:main arg1 arg2执行的效果和execl(”main”,”arg1”,”arg2”,(char*)0)的效果应该是一样的。
3. 如何用python开发snmp的子代理
你好,有一个库pysnmp,你可以pip install pysnmp来安装。一个简单的例子如下。
from pysnmp.entity import engine, config
from pysnmp.entity.rfc3413 import cmdrsp, context
from pysnmp.carrier.asynsock.dgram import udp
from pysnmp.smi import instrum, error
from pysnmp.proto.api import v2c
snmpEngine = engine.SnmpEngine()
config.addSocketTransport(
snmpEngine,
udp.domainName,
udp.UdpTransport().openServerMode(('127.0.0.1', 1161))
)
config.addV1System(snmpEngine, 'my-area', 'public', contextName='my-context')
config.addVacmUser(snmpEngine, 2, 'my-area', 'noAuthNoPriv', (1,3,6), (1,3,6))
snmpContext = context.SnmpContext(snmpEngine)
class FileInstrumController(instrum.AbstractMibInstrumController):
def readVars(self, vars, acInfo=(None, None)):
try:
return [ (o,v2c.OctetString(open('/tmp/%s.txt' % o, 'r').read())) for o,v in vars ]
except IOError:
raise error.SmiError
def writeVars(self, vars, acInfo=(None, None)):
try:
for o,v in vars:
open('/tmp/%s.txt' % o, 'w').write(str(v))
return vars
except IOError:
raise error.SmiError
snmpContext.registerContextName(
v2c.OctetString('my-context'), # Context Name
FileInstrumController() # Management Instrumentation
)
cmdrsp.GetCommandResponder(snmpEngine, snmpContext)
cmdrsp.SetCommandResponder(snmpEngine, snmpContext)
snmpEngine.transportDispatcher.jobStarted(1)
try:
snmpEngine.transportDispatcher.runDispatcher()
except:
snmpEngine.transportDispatcher.closeDispatcher()
raise
4. 如何在python配置动态转发代理
你好,首先你需要一个middlewares.py,如下:
import random
# 导入settings文件中的UAPOOL
from settings import UAPOOL
# 导入官方文档对应的HttpProxyMiddleware
from scrapy.contrib.downloadermiddleware.useragent import UserAgentMiddleware
class Uamid(UserAgentMiddleware):
# 初始化 注意一定要user_agent,不然容易报错
def __init__(self, user_agent=''):
self.user_agent = user_agent
# 请求处理
def process_request(self, request, spider):
# 先随机选择一个用户代理
thisua = random.choice(UAPOOL)
print("当前使用User-Agent是:"+thisua)
request.headers.setdefault('User-Agent',thisua)
在settings.py文件中添加用户UserAgent的信息
# 设置用户代理池,那些动态代理就放到这里了
UAPOOL= [
"Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0",
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36",
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.79 Safari/537.36 Edge/14.14393"
]
5. 求亿牛云爬虫代理python的代码示例
你用的是python的哪个模块,每个模块引入的方式不同
6. python 爬虫设置代理
7. 如何使用服务器代理 python使用代理服务器
小鸟云服务器niaoyun实例创建好之后,您可以使用以下任意一种方式登录服务器:内
远程桌面连接(,MSTSC):采用这种容方式登录,请确保实例能访问公网。如果在创建实例时没有购买带宽,则不能使用远程桌面连接。
管理终端VNC:无论您在创建实例时是否购买了带宽,只要您本地有网页浏览器,都可以通过管理控制台的管理终端登录实例。
使用远程桌面连接(MSTSC)登录实例
打开开始菜单>远程桌面连接,或在开始菜单>搜索中输入mstsc。也可以使用快捷键Win+R来启动运行窗口,输入mstsc后回车启动远程桌面连接。
在远程桌面连接对话框中,输入实例的公网IP地址。单击显示选项。
输入用户名,如小鸟云默认为niaoyun。单击允许我保存凭据,然后单击连接。这样以后登录就不需要手动输入密码了。
8. 如何在 Python 中正确的代理对象
先来看这段代码:
import threading
import time
def worker():
print “worker”
time.sleep(1)
return
for i in xrange(5):
t = threading.Thread(target=worker)
t.start()
这段代码就使用了多线程,但是没法传递参数,而实际使用多线程,往往是需要传递参数的,于是问了一位群里的网友后,知道可以这么写实现传递参数的多线程:
import threading
import time
def worker(number):
print “worker”
time.sleep(number)
return
for i in xrange(5):
t = threading.Thread(target=worker,args=(i,))
t.start()
第一个参数是线程函数变量,第二个参数args是一个数组变量参数,如果只传递一个值,就只需要i, 如果需要传递多个参数,那么还可以继续传递下去其他的参数,其中的逗号不能少,少了就不是数组了,就会出错。
9. python随便给了个代理IP居然也能正常访问,这是为啥
不同的状态码代表着不同含义。
200并不代表正常访问并获取到返回值。只是表明正确处理了请求而已。
你随便设置的代理ip有可能真的存在这是一方面,另一方面代理只是链接与转发功能。200的状态码也并不能表示代理成功让你访问到了目标网址并获取到了正确的返回信息。
常见的状态码有很多,404、400、500等等。
以下资料摘自(csdn博客:https://blog.csdn.net/xiaoxiaode_shu/article/details/80700801)
1开头的http状态码
表示临时响应并需要请求者继续执行操作的状态代码。
100 (继续) 请求者应当继续提出请求。 服务器返回此代码表示已收到请求的第一部分,正在等待其余部分。
101 (切换协议) 请求者已要求服务器切换协议,服务器已确认并准备切换。
2开头的http状态码
表示请求成功
200 成功处理了请求,一般情况下都是返回此状态码;
201 请求成功并且服务器创建了新的资源。
202 接受请求但没创建资源;
203 返回另一资源的请求;
204 服务器成功处理了请求,但没有返回任何内容;
205 服务器成功处理了请求,但没有返回任何内容;
206 处理部分请求;
3xx (重定向)
重定向代码,也是常见的代码
300 (多种选择) 针对请求,服务器可执行多种操作。 服务器可根据请求者 (user agent) 选择一项操作,或提供操作列表供请求者选择。
301 (永久移动) 请求的网页已永久移动到新位置。 服务器返回此响应(对 GET 或 HEAD 请求的响应)时,会自动将请求者转到新位置。
302 (临时移动) 服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。
303 (查看其他位置) 请求者应当对不同的位置使用单独的 GET 请求来检索响应时,服务器返回此代码。
304 (未修改) 自从上次请求后,请求的网页未修改过。 服务器返回此响应时,不会返回网页内容。
305 (使用代理) 请求者只能使用代理访问请求的网页。 如果服务器返回此响应,还表示请求者应使用代理。
307 (临时重定向) 服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。
4开头的http状态码表示请求出错
400 服务器不理解请求的语法。
401 请求要求身份验证。 对于需要登录的网页,服务器可能返回此响应。
403 服务器拒绝请求。
404 服务器找不到请求的网页。
405 禁用请求中指定的方法。
406 无法使用请求的内容特性响应请求的网页。
407 此状态代码与 401类似,但指定请求者应当授权使用代理。
408 服务器等候请求时发生超时。
409 服务器在完成请求时发生冲突。 服务器必须在响应中包含有关冲突的信息。
410 如果请求的资源已永久删除,服务器就会返回此响应。
411 服务器不接受不含有效内容长度标头字段的请求。
412 服务器未满足请求者在请求中设置的其中一个前提条件。
413 服务器无法处理请求,因为请求实体过大,超出服务器的处理能力。
414 请求的 URI(通常为网址)过长,服务器无法处理。
415 请求的格式不受请求页面的支持。
416 如果页面无法提供请求的范围,则服务器会返回此状态代码。
417 服务器未满足”期望”请求标头字段的要求。
5开头状态码并不常见,但是我们应该知道
500 (服务器内部错误) 服务器遇到错误,无法完成请求。
501 (尚未实施) 服务器不具备完成请求的功能。 例如,服务器无法识别请求方法时可能会返回此代码。
502 (错误网关) 服务器作为网关或代理,从上游服务器收到无效响应。
503 (服务不可用) 服务器目前无法使用(由于超载或停机维护)。 通常,这只是暂时状态。
504 (网关超时) 服务器作为网关或代理,但是没有及时从上游服务器收到请求。
505 (HTTP 版本不受支持) 服务器不支持请求中所用的 HTTP 协议版本。
10. 想用python写一个代理http的代理程序,有没有可以参考的源代码
https://..com/question/429840094070280492
下次问之前你可以考虑先网络下