数据抓取使用HTTP代理ip代码示例
发表于:2024-11-30 作者:千家信息网编辑
千家信息网最后更新 2024年11月30日,HTTP Proxy Demo 代码1、Python#! -*- encoding:utf-8 -*-import requests# 要访问的目标页面targetUrl = "http://ip.h
千家信息网最后更新 2024年11月30日数据抓取使用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安全错误
数据库的锁怎样保障安全
江苏企业软件开发大概要多少钱
云服务器日本
飞行大数据网络技术
网络安全 奇安信
香港网络安全法规
可靠的定制软件开发
nas 与服务器
软件开发团队成员分工图
java软件开发源代码
新普软件开发
数据网络安全证有用吗
网络安全不是法外之地短视频
HRV 分析软件 数据库
主机与网络安全是什么
手机系统服务器无响应是什么原因
员工综合收入数据库
软件开发机能设计书内容
网络安全包括电信网络
超星尔雅网络安全课程答案
网络安全法解读下
阿里巴巴服务器空间要多少
可以远程登录的服务器
软件开发能做到老吗
不同平台数据库管理工具
魔域H5服务器架设
软件开发工程师需要的能力
腾讯服务器2g用久了好卡
数据库技术与应用是大数据嘛
服务器一般配置
绍兴app软件开发项目