Python接入示例
发布时间: 2023-07-20 15:44:51
阅读量: 486 人次
隧道代理服务器地址
版本 | 代理服务器地址 | 端口 |
---|---|---|
隧道代理(1分钟版) | one-tun.sshttp.cn | 3200 |
隧道代理(每次请求换IP版) | dyn-tun.sshttp.cn | 3100 |
示例说明
requests
Scrapy
import requests
target_url = "http://httpbin.org/ip"
proxy_host = 'dyn-tun.sshttp.cn'
proxy_port = 3100
proxy_username = '实例id(后台-我的产品-隧道代理页面可查)'
proxy_pwd = '实例密码(后台-我的产品-隧道代理页面可查)'
proxyMeta = "http://%(user)s:%(pass)s@%(host)s:%(port)s" % {
"host": proxy_host,
"port": proxy_port,
"user": proxy_username,
"pass": proxy_pwd,
}
proxies = {
'http': proxyMeta,
'https': proxyMeta,
}
try:
resp = requests.get(url=target_url, proxies=proxies)
print(resp.text)
except Exception as e:
print e
urllib
from urllib import request
# 要访问的目标页面
targetUrl = "http://httpbin.org/ip"
# 代理服务器
proxy_host = "dyn-tun.sshttp.cn"
proxy_port = "3100"
# 代理隧道验证信息
proxyUser = '实例id(后台-我的产品-隧道代理页面可查)'
proxyPass = '实例密码(后台-我的产品-隧道代理页面可查)'
proxyMeta = "http://%(user)s:%(pass)s@%(host)s:%(port)s" % {
"host": proxyHost,
"port": proxyPort,
"user": proxyUser,
"pass": proxyPass,
}
proxy_handler = request.ProxyHandler({
"http": proxyMeta,
"https": proxyMeta,
})
opener = request.build_opener(proxy_handler)
request.install_opener(opener)
resp = request.urlopen(targetUrl).read()
print(resp)
import base64
proxyUser = "实例id(后台-我的产品-隧道代理页面可查)"
proxyPass = "实例密码(后台-我的产品-隧道代理页面可查)"
proxyHost = "dyn-tun.sshttp.cn"
proxyPort = "3100"
proxyServer = "http://%(host)s:%(port)s" % {
"host" : proxyHost,
"port" : proxyPort
}
# for Python2
proxyAuth = "Basic " + base64.b64encode(proxyUser + ":" + proxyPass)
# for Python3
#proxyAuth = "Basic " + base64.urlsafe_b64encode(bytes((proxyUser + ":" + proxyPass), "ascii")).decode("utf8")
class ProxyMiddleware(object):
def process_request(self, request, spider):
request.meta["proxy"] = proxyServer
request.headers["Proxy-Authorization"] = proxyAuth
"""
使用aiohttp请求隧道服务器
请求http和https网页均适用
"""
import asyncio
import aiohttp
import requests
# 实例id(后台-我的产品-隧道代理页面可查)
app_key = ''
# 实例密码(后台-我的产品-隧道代理页面可查)
app_secret = ''
# 用户名密码认证
proxy_auth = aiohttp.BasicAuth(app_key, app_secret)
# 要访问的目标网页
target_url = "http://httpbin.org/ip"
# 隧道域名
proxy_host = 'dyn-tun.sshttp.cn'
# 端口号
proxy_port = '3100'
async def fetch(session, url):
async with session.get(url, proxy="http://" + proxy_host + ":" + proxy_port, proxy_auth=proxy_auth,) as response:
return await response.text()
async def run():
# aiohttp默认使用严格的HTTPS协议检查。可以通过将ssl设置为False来放松认证检查
# async with aiohttp.ClientSession(connector=aiohttp.TCPConnector(ssl=False)) as session:
async with aiohttp.ClientSession() as session:
html = await fetch(session, target_url)
print(html)
if __name__ == '__main__':
loop = asyncio.get_event_loop()
loop.run_until_complete(run())