`

请求中设置代理IP

    博客分类:
  • java
阅读更多
(不能直接JVM设置代理
System.getProperties().setProperty("http.proxyHost", ip); 
System.getProperties().setProperty("http.proxyPort", "80");
设置JVM代理后 无法再次获取GetDlIp.dlip();   )


-----------------------------------------设置请求的代理IP


package com.bageer.meituan;
//9f27a0700a6b26192380a791807639bf
import java.io.BufferedReader; 
import java.io.IOException; 
import java.io.InputStream; 
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Random;

import org.apache.http.Consts; 
import org.apache.http.HttpEntity;
import org.apache.http.HttpHost;
import org.apache.http.NameValuePair; 
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.entity.UrlEncodedFormEntity; 
import org.apache.http.client.methods.CloseableHttpResponse; 
import org.apache.http.client.methods.HttpGet; 
import org.apache.http.impl.client.CloseableHttpClient; 
import org.apache.http.impl.client.HttpClients; 
import org.apache.http.message.BasicNameValuePair; 
import org.apache.http.util.EntityUtils;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import com.bageer.dao.DataInfoDao;
import com.bageer.dao.DataInfoDaoImpl;
import com.bageer.model.Shop_Info_Model; 
public class GetMtLhfj {
public static DataInfoDao dao=new DataInfoDaoImpl();
public static void main(String[] args) {
int page=1;
while(true){
List list=dao.getData("select SHOP_URL ,Rownum rn from o2o_shop_info  t where city='邢台市'  and pt_name='美团外卖'  and shop_url like '%access_source%' and  is_lhfj is null", "1");
if(list.size()==0){
System.exit(0);
}
for (int i = 0; i < list.size(); i++) {
Map map=(Map)list.get(i);
String shop_url=map.get("SHOP_URL").toString();


Shop_Info_Model shopIfo=search(shop_url.split("\\?")[0].replace("restaurant", "qualification"));

if(shopIfo!=null){
if(shopIfo.getDeath()==null){
shopIfo.setShop_url(shop_url);
dao.update(shopIfo);
}else{
//死链接,为什么要单独更新死链接
//单独更新死链接可以只更新死链接的状态并不修改数据库中的数据
}
}
System.out.println(page+"==========================");
/*try {
Random rnd=new Random();
Thread.sleep((rnd.nextInt(1000)+1000));
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}*/
}
page++;
}
}



public static Shop_Info_Model  search(String url){
String ip=GetDlIp.dlip();
        CloseableHttpClient httpClient = HttpClients.createDefault(); 
        CloseableHttpResponse response = null; 
        InputStream is = null; 
        //封装请求参数 
        List<NameValuePair> params = new ArrayList<NameValuePair>();
        params.add(new BasicNameValuePair("access_source", "1004")); 
        String str = ""; 
        try { 
            //转换为键值对 
            str = EntityUtils.toString(new UrlEncodedFormEntity(params, Consts.UTF_8)); 
            System.out.println(str); 
            //创建Get请求 
            HttpGet httpGet = new HttpGet(url+"?"+str); 
            httpGet.setHeader("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8");
            httpGet.setHeader("Accept-Encoding", "gzip, deflate, sdch");
            httpGet.setHeader("Accept-Language", "zh-CN,zh;q=0.8");
            httpGet.setHeader("Cache-Control", "max-age=0");
            httpGet.setHeader("Connection", "keep-alive");
            httpGet.setHeader("Cookie", "w_uuid=jIr1mG-pCMj69WwvZxpD7LvaHf2k9xnJPzGB9aeIPDWEG-mSYOur_6UIOYG-DZfP; _lxsdk_cuid=162cc2b4462c8-0977acd7dae47d-6b1b1279-100200-162cc2b4463c8; _lxsdk=162cc2b4462c8-0977acd7dae47d-6b1b1279-100200-162cc2b4463c8; _lx_utm=utm_campaign%3Dbaidu%26utm_source%3D1522; _ga=GA1.2.1772268467.1523843811; _gid=GA1.2.1093233036.1524031032; w_cid=110108; w_cpy_cn=\"%E6%B5%B7%E6%B7%80%E5%8C%BA\"; w_cpy=haidianqu; waddrname=\"%E7%B4%AB%E9%87%91%E5%A4%A7%E5%8E%A6\"; w_geoid=wx4equc9mmtp; w_ah=\"39.972626846283674,116.31454780697823,%E7%B4%AB%E9%87%91%E5%A4%A7%E5%8E%A6\"; JSESSIONID=jn7psbnnfzlg11c9ckvs7gfzd; _ga=GA1.3.1772268467.1523843811; _gid=GA1.3.1093233036.1524031032; _gat=1; w_utmz=\"utm_campaign=baidu&utm_source=1522&utm_medium=(none)&utm_content=(none)&utm_term=(none)\"; w_visitid=90067f92-aa84-4233-8ded-4943e427773c; __mta=251558201.1523843813548.1524031660063.1524031728661.43; _lxsdk_s=162d7540a1a-567-6e4-74b%7C%7C22");
            httpGet.setHeader("Host", "waimai.meituan.com");
            httpGet.setHeader("Upgrade-Insecure-Requests", "1");
            httpGet.setHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36");
            //执行Get请求, 
            System.out.println(ip);
            HttpHost proxy = new HttpHost(ip.split(":")[0],Integer.parseInt( ip.split(":")[1].split(",")[0]));
            RequestConfig requestConfig = RequestConfig.custom()
                .setProxy(proxy)
                .setConnectTimeout(10000)
                .setSocketTimeout(10000)
                .setConnectionRequestTimeout(3000)
                .build();
            httpGet.setConfig(requestConfig);
            response = httpClient.execute(httpGet); 
            //得到响应体 
            HttpEntity entity = response.getEntity(); 
            if(entity != null){ 
                is = entity.getContent(); 
                //转换为字节输入流 
                BufferedReader br = new BufferedReader(new InputStreamReader(is, Consts.UTF_8)); 
                String body = null; 
                StringBuilder sb=new StringBuilder();
                while((body=br.readLine()) != null){ 
                sb.append(body); 
                } 
             Document doc= Jsoup.parse(sb.toString());
             Shop_Info_Model shopinfo=new Shop_Info_Model();
             if(doc.text().indexOf("返回首页")>0){
            shopinfo.setDeath("1");
            return shopinfo;
             }
         String csdj = null;// 场所等级
    String gldj = null;// 管理等级
    String jcrq = null;// 检查日期
    String dwmc = null;// 单位名称
    String xkzh = null;// 许可证号
    String fddbr = null;// 法定代表人
    String jydz = null;// 经营地址
    String ztyt = null;// 主体业态
    String jyfw = null;// 经营范围
    String yxq = null;// 有效期
     int indexOf = sb.indexOf("营业执照");
     String yyzh = null;
     String xkz = null;
     if (indexOf > -1) {
     yyzh = "1";
     } else {
     yyzh = "0";
     }

     int indexOf2 = sb.indexOf("餐饮服务许可证");
     if (indexOf2 > -1) {
     xkz = "1";
     } else {
     indexOf2 = sb.indexOf("特许证件");
     if (indexOf2 > -1) {
     xkz = "1";
     } else {
     xkz = "0";
     }
     }
     shopinfo.setIs_yyzz(yyzh);
     shopinfo.setIs_xkz(xkz);
     String text = doc.getElementsByAttributeValue("class", "new-zizhi").text();
     if (text.length() > 2) {
     shopinfo.setIs_lhfj("1");
     if (text.indexOf("场所等级:") > -1) {
     csdj = text.split("场所等级:")[1].trim().split(" ")[0].trim();
     System.out.println(csdj);
     shopinfo.setCsdj(csdj);
     }
     if (text.indexOf("管理等级:") > -1) {
     gldj = text.split("管理等级:")[1].trim().split(" ")[0].trim();
     System.out.println(gldj);
     shopinfo.setGldj(gldj);;
     }
     if (text.indexOf("检查日期:") > -1) {
     jcrq = text.split("检查日期:")[1].trim().split(" ")[0].trim();
     System.out.println(jcrq);
     shopinfo.setJcrq(jcrq);
     }
     if (text.indexOf("单位名称:") > -1) {
     dwmc = text.split("单位名称:")[1].trim().split(" ")[0].trim();
     System.out.println(dwmc);
     shopinfo.setDwmc(dwmc);
     }
     if (text.indexOf("许可证号:") > -1) {
     xkzh = text.split("许可证号:")[1].trim().split(" ")[0].trim();
     System.out.println(xkzh);
     shopinfo.setXkzh(xkzh);
     }
     if (text.indexOf("法定代表人") > -1) {

     fddbr = text.split("法定代表人")[1].trim().split(" ")[0].trim();
     System.out.println(fddbr);
     shopinfo.setFddbr(fddbr);
     }
     if (text.indexOf("经营地址:") > -1) {

     jydz = text.split("经营地址:")[1].trim().split(" ")[0].trim();
     System.out.println(jydz);
     shopinfo.setJydz(jydz);
     }
     if (text.indexOf("主体业态:") > -1) {

     ztyt = text.split("主体业态:")[1].trim().split(" ")[0].trim();
     System.out.println(ztyt);
     shopinfo.setZtyt(ztyt);
     }
     if (text.indexOf("经营项目:") > -1) {

     jyfw = text.split("经营项目:")[1].trim().split(" ")[0].trim();
     System.out.println(jyfw);
     shopinfo.setJyfw(jyfw);
     }
     if (text.indexOf("有效期:") > -1) {

     yxq = text.split("有效期:")[1].trim().split(" ")[0].trim();
     System.out.println(yxq);
     shopinfo.setYxq(yxq);
     }
     } else {
     System.out.println("没有量化分级"+"================"+sb.length());
     System.out.println("没有量化分级"+"================"+sb.indexOf("营业执照"));
     System.out.println("没有量化分级"+"================"+sb.indexOf("许可证"));
     shopinfo.setIs_lhfj("0");
     if(sb.length()<500){
     return null;
     }
     }
     return shopinfo;
            } 
        } catch (Exception e) { 
            e.printStackTrace(); 
        }  finally{ 
            //关闭输入流,释放资源 
            if(is != null){ 
                try { 
                    is.close(); 
                } catch (IOException e) { 
                    e.printStackTrace(); 
                } 
            } 
            //消耗实体内容 
            if(response != null){ 
                try { 
                    response.close(); 
                } catch (IOException e) { 
                    e.printStackTrace(); 
                } 
            } 
            //关闭相应 丢弃http连接 
            if(httpClient != null){ 
                try { 
                    httpClient.close(); 
                } catch (IOException e) { 
                    e.printStackTrace(); 
                } 
            }
         
        } 
        return null; 
}

}


















-----------------------------------获取代理IP

package com.bageer.meituan;

import java.io.BufferedInputStream;
import java.io.InputStream;
import java.net.HttpURLConnection;

public class GetDlIp {
public static String dlip(){
// 每隔几秒提取一次IP
// 请填写无忧代理IP订单号,填写之后才可以提取到IP哦
String order = "xxxx";
try {
java.net.URL url = new java.net.URL("http://api.ip.data5u.com/dynamic/get.html?order=" + order + "&ttl&random=true");
//java.net.URL url = new java.net.URL("http://103.30.41.108/Tools/proxyIP.ashx?Type=YYYYY888888885545555555556&qty=5");

HttpURLConnection connection = (HttpURLConnection)url.openConnection();
    connection.setConnectTimeout(3000);
    connection = (HttpURLConnection)url.openConnection();
        InputStream raw = connection.getInputStream(); 
        InputStream in = new BufferedInputStream(raw); 
        byte[] data = new byte[in.available()];
        int bytesRead = 0; 
        int offset = 0; 
        while(offset < data.length) { 
            bytesRead = in.read(data, offset, data.length - offset); 
            if(bytesRead == -1) { 
                break; 
            } 
            offset += bytesRead; 
        } 
        in.close(); 
        raw.close();
String[] res = new String(data, "UTF-8").split("\n");
System.out.println(">>>>>>>>>>>>>>当前返回IP量 " + res.length);
return res[0];
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
}




分享到:
评论

相关推荐

    VC循环设置代理IP

    描述中提到“修改注册表来设置代理IP”,这是另一种常见的方法。Windows系统中的网络代理设置往往会在注册表中有所体现。例如,代理设置通常存储在`HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\...

    iOS拦截 HTTP 请求demo源码:修改请求的HTTPHeaderField,设置代理IP和端口

    2、针对NSURLSessionConfiguration设置代理IP和端口,让一些特殊的请求走自定义的隧道IP和端口 ———————————————— 版权声明:本文为CSDN博主「#公众号:iOS逆向」的原创文章,遵循CC 4.0 BY-SA版权...

    C# webbrowser控件设置代理IP访问网站

    C#:webbrowser控件设置代理IP访问网站

    iOS安全之【拦截请求,实现特定目的 】(修改HTTPHeaderField、不走全局proxy、设置代理IP和端口、对网络请求的数据进行报文级别的加密)

    2.2、针对NSURLSessionConfiguration设置代理IP和端口,让一些特殊的请求走自定义的隧道IP和端口 2.3、对网络请求的数据进行报文级别的加密:使用NSURLProtocol来自动监听HTTP请求并加密解密。 通过[NSURLProtocol ...

    java实现免费代理IP的获取方式 并实时校验代理IP是否有效

    其一:用于请求代理IP,并立即校验是否是一个有效的代理IP,如果有效,保存到相应的文件中。。。 其二:对已下载到本地的代理IP进行再筛选,对失效的代理IP进行处理,对任然有效的ip进行保存 结语:如果对你有帮助,...

    易语言伪造请求ip 伪造请求ip 网页访问伪造ip

    X-Forwarded-For 是一个 HTTP 扩展头部,用来表示HTTP请求端真实 IP,HTTP/1.1 协议并没有对它的定义,但现如今X-Forwarded-For已被各大 HTTP 代理、负载均衡等转发服务广泛使用。 X-Forwarded-For 请求头格式: X-...

    Playwright为页面中的某个请求单独设置代理

    Playwright官方加代理的方式只有两种,一种是浏览器全局代理,一种是context会话代理。...本demo就是为context中的某个request请求单独设置代理的实例,下载后填入自己的代理ip即可直接运行,查看效果。

    易语言代理IP设置源码.zip

    学习易语言代理IP设置源码,不仅可以提升对网络编程的理解,还能掌握如何在易语言中处理网络请求。此外,熟悉源码也有助于自定义网络行为,如动态更换代理IP、实现多线程并发请求等。 在实际应用中,我们可以结合...

    如何伪造IP 发送HTTP请求request

    使用VC可以编写C++程序来创建HTTP请求,并通过库函数或自定义封装的HTTP类来设置代理和伪造IP。 - VC中的`Winsock`库可以用来处理网络通信,包括TCP/IP协议栈的使用。 - `GetLastError()`函数是Windows API的一...

    易风代理IP工具

    【易风代理IP工具】是一款专门用于获取和设置代理IP的实用软件,它能够帮助用户在全国范围内找到大量的IP地址,并且支持在Internet Explorer(IE)浏览器中设置这些代理,以实现网络访问的匿名性和多样化。...

    全自动提取IP代理

    为避免被目标网站检测到,可能需要使用到随机User-Agent、设置延迟请求、使用代理IP自身进行爬取(即IP代理的自我应用)等策略。 最后,压缩包文件"全自动提取IP代理"可能包含以下内容:完整的自动化脚本代码,用于...

    易语言源码易语言代理IP设置源码.rar

    在易语言中实现代理IP设置,通常涉及到以下几个关键知识点: 1. **网络通信模块**:易语言提供了丰富的网络通信函数,如“建立网络连接”、“发送数据”和“接收数据”等,用于实现与远程服务器的交互。在代理IP...

    代理IP自动抓取器,好用的代理IP自动抓取软件

    "代理IP自动抓取器"是一款高效便捷的软件工具,它专门设计用于自动收集可用的代理IP地址,以满足用户对匿名浏览或大量网络请求的需求。下面我们将详细探讨这款软件的功能及其相关知识点。 首先,"自动抓取代理IP"是...

    代理IP获取器

    在IT行业中,代理IP(代理Internet Protocol)是一种网络通信技术,它允许设备通过另一台服务器(代理服务器)来访问互联网,从而隐藏真实的IP地址。这种技术有多种用途,包括提高网络安全、匿名浏览、数据抓取以及...

    代理IP扫描-代理IP获取器

    代理IP的工作原理是,当用户的设备请求访问某个网站时,请求会首先发送到代理服务器,由代理服务器代替用户向目标网站发起请求,并将返回的结果转发给用户。这样,目标网站看到的IP地址是代理服务器的,而不是用户的...

    Java采集最新动态代理IP

    5. **使用代理**:在Java的HTTP请求中,可以设置Proxy对象,将代理IP和端口作为参数,使请求通过代理服务器转发,从而达到突破IP限制的目的。 在实际项目中,可能还需要考虑其他因素,如验证码识别、登录验证、请求...

    ip代理采集和本地切换ip代理上网

    本地切换IP代理上网则指在个人计算机上设置和使用代理服务器,以便通过代理IP进行网络浏览。这可以通过以下几种方式进行: 1. **系统级代理设置**:在Windows系统中,可以在“网络和共享中心”里设置代理服务器,...

    易语言IP代理专家

    在本软件中,IP代理专家能够帮助用户查找并配置有效的代理IP,优化网络连接。 3. **开始查询**:这是软件中的一个重要功能,它启动IP代理的查询过程。通过网络请求,软件会搜索可用的代理服务器,并返回给用户。这...

    代理IP服务端—客户端.rar

    代理IP服务端与客户端是网络通信中常见的技术应用,尤其在数据抓取、网络测试、匿名浏览等场景中扮演着重要角色。在这个“代理IP服务端—客户端.rar”压缩包中,包含了服务端和客户端两个关键组成部分,它们共同构建...

    代理IP检测工具,HTTP/HTTPS/SOCKS5协议连通率和延迟检测

    在IT行业中,网络协议是构建互联网通信的基础,而代理IP则是网络访问的一种策略。本文将深入探讨代理IP检测工具,特别是针对HTTP、HTTPS以及SOCKS5协议的连通率和延迟检测,这对于网络爬虫、数据抓取、网络安全以及...

Global site tag (gtag.js) - Google Analytics