首页 > 其他分享 >数据抓取使用HTTP隧道代码示例

数据抓取使用HTTP隧道代码示例

时间:2023-05-22 10:00:43浏览次数:42  
标签:HTTP 示例 抓取 代理服务器 port proxy 隧道 response

以下是使用Python的requests库实现HTTP隧道的代码示例:


```python

import requests


# 设置代理服务器地址和端口号

proxy_host = '127.0.0.1'

proxy_port = '8888'


# 设置目标网站URL

url = 'Example Domain'


# 创建Session对象

session = requests.Session()


# 设置代理服务器

session.proxies = {

'http': f'http://{proxy_host}:{proxy_port}',

'https': f'https://{proxy_host}:{proxy_port}'

}


# 发送HTTP CONNECT请求建立隧道

response = session.request('CONNECT', url)


# 检查响应状态码是否为200

if response.status_code == 200:

# 隧道建立成功,发送HTTP请求获取数据

response = session.get(url)

# 处理响应数据

print(response.text)

else:

# 隧道建立失败,输出错误信息

print(f'Failed to establish tunnel: {response.status_code} {response.reason}')

```


在代码中,我们首先设置代理服务器的地址和端口号,然后创建一个Session对象,并将代理服务器设置为Session的proxies属性。接着,我们发送一个HTTP CONNECT请求,以建立隧道连接。如果响应状态码为200,则表示隧道建立成功,我们可以发送HTTP请求获取数据。否则,隧道建立失败,我们需要输出错误信息。

#! -*- encoding:utf-8 -*-

    import requests

    # 要访问的目标页面
    targetUrl = "http://ip.hahado.cn/ip"

    # 代理服务器
    proxyHost = "ip.hahado.cn"
    proxyPort = "39010"

    # 代理隧道验证信息
    proxyUser = "username"
    proxyPass = "password"

    proxyMeta = "http://%(user)s:%(pass)s@%(host)s:%(port)s" % {
        "host" : proxyHost,
        "port" : proxyPort,
        "user" : proxyUser,
        "pass" : proxyPass,
    }

    proxies = {
        "http"  : proxyMeta,
        "https" : proxyMeta,
    }

    resp = requests.get(targetUrl, proxies=proxies)

    print resp.status_code
    print resp.text

标签:HTTP,示例,抓取,代理服务器,port,proxy,隧道,response
From: https://blog.51cto.com/u_15822686/6321056

相关文章

  • flutter dio自定义http client
    finaldio=Dio();DiogetMyDio(){initAdapter();dio.options.headers={'apiKey':'xxxxx'};dio.options.connectTimeout=constDuration(seconds:15);dio.options.receiveTimeout=constDuration(seconds:15);di......
  • dotnet平台Http消息处理者工厂
    1前言Microsoft.Extensions.Http是一个设计非常优异的客户端工厂库,其提供了IHttpClientFactory用于创建HttpClient和IHttpMessageHandlerFactory用于创建HttpMessageHandler。遗憾的是这个库目前仅非常试用于客户端,而不太适用于转发端。我们对客户端的定义是一个软件在某种业务......
  • httpd2.4 配置https访问
    httpd版本:Serverversion:Apache/2.4.37(AlibabaCloudLinux) 实验步骤如下:1.购买域名,使用阿里云域名购买k.com。2.购买ECS服务器(使用突发式实例-印度尼西亚,便宜3分钱一小时),带有公网IP。3.配置域名解析demo.k.com指向ECS公网IP。4.购买SSL证书,使用阿里云数字证书......
  • xxxxhttps://blog.csdn.net/holecloud/article/details/80139297
    #include"stdafx.h"#include<opencv2\imgproc\imgproc.hpp>#include<windows.h>#include<opencv2/opencv.hpp>#include<cmath>#include<iostream>//#include"DetectPackage.h"#include<cmath>usin......
  • HttpUrlConnection底层实现和关于java host绑定ip即时生效的设置及分析
     最近有个需求需要对于获取URL页面进行host绑定并且立即生效,在java里面实现可以用代理服务器来实现:因为在测试环境下可能需要通过绑定来访问测试环境的应用实现代码如下: publicstaticStringgetResponseText(StringqueryUrl,Stringhost,Stringip){//queryUrl,完整的u......
  • fastapi最简单使用示例
    直接上代码了fromfastapiimportFastAPI,Requestimportuvicornapp=FastAPI()@app.post("/")asyncdefcreate_item(request:Rquest):json_post_raw=awaitrequest.json()#下面的代码就是根据取得的数据进行自己的相应解析answer={这里自己填......
  • 位运算(位于、位或、异或、按位取反、位左移、位右移)及相应示例
    一、位运算符运算符含义a&b位与aba^b异或~a按位取反a<<b位左移a>>b位右移二、运算符说明:把他们转化为二进制从低到高按位运算位与(&):当两位都为1时,结果为1,否则为0,在将得出的结果转化为十进制,得出位于的结果位或(|)当且仅当两位都为0时,结果为0,否则为1,在将得出的结果转化为十......
  • dockerfile示例
    FROMconetosVOLUMES['volumes01','volumes02']容器挂载相互同步先启动一个dockerrun-it--namedocker01centos:1.0在启动一个dockerrun-it--namedocker02--volumes-fromdocker01centos:1.0--volumes-from实现数据卷挂载同步相当于实现了继承(docker02ext......
  • 跨域JSONP原理及调用具体示例
    上篇博客介绍了同源策略和跨域访问概念,其中提到跨域常用的基本方式:JSONP和CORS。 那这篇博客就介绍JSONP方式。  JSONP原理  在同源策略下,在某个服务器下的页面是无法获取到该服务器以外的数据的,但img、iframe、script等标签是个例外,这......
  • 解决Anroid7.0以上版本无法抓取微信浏览器中Https请求
    为什么安卓7.0以上的系统,微信7.0版本以上无法抓取https包?原因:1.安卓7.0之后,提高了系统安全性。APP默认不信任用户域的证书2.微信7.0以后更新了安全机制,加入了防止中间人attack的机制详情可搜索sslpinning了解防止中间人attackSSLPinninghttps的网站使用使用伪证书可以抓到,但app......