数据抓取使用HTTP代理ip代码示例
发表于:2025-01-31 作者:千家信息网编辑
千家信息网最后更新 2025年01月31日,HTTP Proxy Demo 代码1、Python#! -*- encoding:utf-8 -*-import requests# 要访问的目标页面targetUrl = "http://ip.h
千家信息网最后更新 2025年01月31日数据抓取使用HTTP代理ip代码示例
HTTP Proxy Demo 代码
1、Python
#! -*- 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_codeprint resp.text
2、C Sharp
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://ip.hahado.cn/ip");WebProxy myProxy = new WebProxy();Uri newUri = new Uri("http://ip.hahado.cn:39010");myProxy.Address = newUri;myProxy.Credentials = new NetworkCredential("username", "password");request.Proxy = myProxy;
3、PHP
// 要访问的目标页面$targetUrl = "http://ip.hahado.cn/ip";//$targetUrl = "http://ip.hahado.cn/switch-ip";//$targetUrl = "http://ip.hahado.cn/current-ip";// 代理服务器define("PROXY_SERVER", "ip.hahado.cn:39010");// 隧道身份信息define("PROXY_USER", "username");define("PROXY_PASS", "password");$proxyAuth = base64_encode(PROXY_USER . ":" . PROXY_PASS);$headers = implode("\r\n", [ "Proxy-Authorization: Basic {$proxyAuth}", "Proxy-Switch-Ip: yes",]);$options = [ "http" => [ "proxy" => $proxyServer, "header" => $headers, "method" => "GET", ],];$context = stream_context_create($options);$result = file_get_contents($url, false, $context);var_dump($result);
4、JAVA
import java.io.ByteArrayOutputStream;import java.io.InputStream;import java.net.Authenticator;import java.net.HttpURLConnection;import java.net.InetSocketAddress;import java.net.PasswordAuthentication;import java.net.Proxy;import java.net.URL;class ProxyAuthenticator extends Authenticator { private String user, password; public ProxyAuthenticator(String user, String password) { this.user = user; this.password = password; } protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(user, password.toCharArray()); }}/** * 注意:下面代码仅仅实现HTTP请求链接,每一次请求都是无状态保留的,仅仅是这次请求是更换IP的,如果下次请求的IP地址会改变 * 如果是多线程访问的话,只要将下面的代码嵌入到你自己的业务逻辑里面,那么每次都会用新的IP进行访问,如果担心IP有重复, * 自己可以维护IP的使用情况,并做校验。 */public class ProxyDemo { public static void main(String args[]) throws Exception { // 要访问的目标页面 String targetUrl = "http://ip.hahado.cn/ip"; //String targetUrl = "http://ip.hahado.cn/switch-ip"; //String targetUrl = "http://ip.hahado.cn/current-ip"; // 代理服务器 String proxyServer = "ip.hahado.cn"; int proxyPort = 39010; // 代理隧道验证信息 String proxyUser = "username"; String proxyPass = "password"; try { URL url = new URL(targetUrl); Authenticator.setDefault(new ProxyAuthenticator(proxyUser, proxyPass)); // 创建代理服务器地址对象 InetSocketAddress addr = new InetSocketAddress(proxyServer, proxyPort); // 创建HTTP类型代理对象 Proxy proxy = new Proxy(Proxy.Type.HTTP, addr); // 设置通过代理访问目标页面 HttpURLConnection connection = (HttpURLConnection) url.openConnection(proxy); // 设置IP切换头 connection.setRequestProperty("Proxy-Switch-Ip","yes"); // 解析返回数据 byte[] response = readStream(connection.getInputStream()); System.out.println(new String(response)); } catch (Exception e) { System.out.println(e.getLocalizedMessage()); } } /** * 将输入流转换成字符串 * * @param inStream * @return * @throws Exception */ public static byte[] readStream(InputStream inStream) throws Exception { ByteArrayOutputStream outSteam = new ByteArrayOutputStream(); byte[] buffer = new byte[1024]; int len = -1; while ((len = inStream.read(buffer)) != -1) { outSteam.write(buffer, 0, len); } outSteam.close(); inStream.close(); return outSteam.toByteArray(); }}
5、golang
package mainimport ( "net/url" "net/http" "bytes" "fmt" "io/ioutil")const ProxyServer = "ip.hahado.cn:39010"type ProxyAuth struct { License string SecretKey string}func (p ProxyAuth) ProxyClient() http.Client { proxyURL, _ := url.Parse("http://" + p.License + ":" + p.SecretKey + "@" + ProxyServer) return http.Client{Transport: &http.Transport{Proxy:http.ProxyURL(proxyURL)}}}func main() { targetURI := "http://ip.hahaod.cn/ip" //targetURI := "http://ip.hahaod.cn/switch-ip" //targetURI := "http://ip.hahaod.cn/current-ip" // 初始化 proxy http client client := ProxyAuth{License: "username", SecretKey: "password"}.ProxyClient() request, _ := http.NewRequest("GET", targetURI, bytes.NewBuffer([] byte(``))) // 切换IP (只支持 HTTP) request.Header.Set("Proxy-Switch-Ip", "yes") response, err := client.Do(request) if err != nil { panic("failed to connect: " + err.Error()) } else { bodyByte, err := ioutil.ReadAll(response.Body) if err != nil { fmt.Println("读取 Body 时出错", err) return } response.Body.Close() body := string(bodyByte) fmt.Println("Response Status:", response.Status) fmt.Println("Response Header:", response.Header) fmt.Println("Response Body:\n", body) }} 更多代理设置教材请复制连接打开:https://v.duoip.cn/customer/signup/?sale=xujinyang1991
代理
服务器
目标
页面
服务
代码
信息
隧道
地址
对象
切换
验证
数据
业务
字符
字符串
情况
教材
更多
状态
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
王者荣耀换服务器后还能开黑吗
数据储存用什么服务器
网络安全风险识别与防护指南
服务器碟机
二萌老师apex在哪个服务器
数据库挖掘哪三种分类
青少年网络安全意识不够
计算机网络技术条件
学软件开发一般需要多久
visio 导出数据库
出库软件数据库怎么安装
软件开发战略框架协议
数据库为什么汉字是问号
中国电信服务器折旧年限
网络安全宣传周主要活动内容
gis数据库导入出错怎么办
数据库怎样添加字段类型
网络安全法是什么时候发布
描述面向对象软件开发思想
数据库查询缺考的学生
网络安全局的电话号码
米虫网络安全手抄报
网络安全法施行首日宣传
魔法卡片网络安全
h3c塔式服务器
智慧城管软件开发专业制作
软件开发由作坊式向工程化转变
武汉有软件开发的互联网公司
重大网络安全事项报告制度
搜狐网络安全构建和谐校园手抄报