`
heioo
  • 浏览: 75511 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

jsoup+蚂蚁代理/阿布云代理

阅读更多
final static String appkey = "xxxxx";//蚂蚁代理key
final static String secret = "xxxxxxxxxxxx";//蚂蚁代理密码
// 设置IP切换头
final static String ProxyHeadKey = "Proxy-Switch-Ip";
final static String ProxyHeadVal = "yes";

// 代理服务器
final static String ProxyHost = "s2.proxy.mayidaili.com";
final static Integer ProxyPort = 8123;



方式如下:


Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress(
ProxyHost, ProxyPort));

Authenticator.setDefault(new Authenticator() {
public PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(appkey, secret.toCharArray());
}
});

Document doc = Jsoup
.connect(url)
.timeout(10000)
.header(ProxyHeadKey, ProxyHeadVal)
.header("Proxy-Authorization", this.getAuthHeader())
.headers(msp)
.validateTLSCertificates(false)
.userAgent(
"Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0")
.proxy(proxy).get();




/**
* 获取蚂蚁代理授权头部
* @return
*/
public String getAuthHeader() {
// 创建参数表
Map<String, String> paramMap = new HashMap<String, String>();
paramMap.put("app_key", appkey);
DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
format.setTimeZone(TimeZone.getTimeZone("GMT+8"));// 使用中国时间,以免时区不同导致认证错误
paramMap.put("timestamp", format.format(new Date()));

// 对参数名进行排序
String[] keyArray = paramMap.keySet().toArray(new String[0]);
Arrays.sort(keyArray);

// 拼接有序的参数名-值串
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append(secret);
for (String key : keyArray) {
stringBuilder.append(key).append(paramMap.get(key));
}

stringBuilder.append(secret);
String codes = stringBuilder.toString();

// MD5编码并转为大写, 这里使用的是Apache codec
String sign = org.apache.commons.codec.digest.DigestUtils.md5Hex(codes)
.toUpperCase();

paramMap.put("sign", sign);

// 拼装请求头Proxy-Authorization的值,这里使用 guava 进行map的拼接
String authHeader = "MYH-AUTH-MD5 "
+ Joiner.on('&').withKeyValueSeparator("=").join(paramMap);
return authHeader;
}
分享到:
评论

相关推荐

    图片列表RecyclerView+ListView+WebView+JzvdStd/JZPlayer+Jsoup+Glide

    在Android开发中,标题"图片列表RecyclerView+ListView+WebView+JzvdStd/JZPlayer+Jsoup+Glide"所提及的技术栈是构建一个功能丰富的移动应用的关键组件。以下是这些技术的具体介绍和它们如何协同工作的详细说明: 1...

    基于springboot+mybatisplus+jsoup+mysql开发web小说网站

    【标题】基于SpringBoot+MyBatisPlus+Jsoup+MySQL开发Web小说网站 在现代互联网环境中,构建一个Web小说网站已经成为许多开发者和创业者的首选项目。本项目使用了Java技术栈,具体包括SpringBoot、MyBatisPlus、...

    jsoup+httpclient j简单爬虫

    **JSoup + HttpClient 简单爬虫** 在信息技术领域,数据抓取,或称“爬虫”,是一种自动化获取网页信息的技术。JavaScript Object Notation (JSON) Soup 和 HttpClient 是两个在Java开发中常用于实现爬虫功能的库。...

    Java爬虫Jsoup+httpclient获取动态生成的数据

    本文主要讲述如何利用Java编程语言中的Jsoup库和HttpClient工具包来获取和解析动态生成的数据,特别是那些通过JavaScript动态加载的数据。 ### Java爬虫基础 Java爬虫是指使用Java语言编写的一类程序,这些程序...

    Jsoup+httpclient模拟登陆和抓取页面.pdf

    Jsoup+httpclient模拟登陆和抓取页面.pdf

    springboot+mybatisplus+jsoup+mysql搭建小说阅读网站

    springboot+mybatisplus+jsoup+mysql springboot【小说阅读网站】,多线程抓取小说数据(单本或者批量),持久化到MySQL数据库,能定时跟源站数据同步=小说定时更新。通过jsoup采集数据到mysql数据,redis作为缓存...

    jsoup+httpclient

    **JSoup与HttpClient详解** JSoup与HttpClient是Java开发中常用的两个库,分别用于处理HTML文档解析和网络请求。在本教程中,我们将深入探讨这两个工具,并了解如何结合使用它们来实现对视频网站的爬虫功能。 **1....

    Java爬虫【一篇文章精通系列-案例开发-巨细】HttpClient5 + jsoup + WebMagic + spider

    本篇文章以"一篇文章精通系列-案例开发-巨细"为主题,详细介绍了如何使用HttpClient5、jsoup、WebMagic以及spider-flow这四个关键工具来构建一个强大的Java爬虫系统。以下是对这些工具和技术的深入解析。 首先,...

    jsoup+htmlunitl 爬取外币汇率

    在本文中,我们将深入探讨如何使用Jsoup和HtmlUnit库来爬取并处理网页上的外币汇率信息。这两个工具是Java编程语言中的强大选择,用于网络数据抓取和页面解析。 首先,Jsoup是一个用于处理实际世界HTML的Java库。它...

    spring boot+java +jsoup+ 爬虫

    Spring Boot + Java + Jsoup 爬虫是一个常见的技术组合,用于构建高效、简洁的网络爬虫项目。本文将深入探讨这些技术如何协同工作,以及如何利用它们来抓取和处理网页上的图片资源。 首先,Spring Boot 是一个由...

    动态爬虫jsoup+jdic实现

    总的来说,动态爬虫jsoup+jdic实现是一种实用的网络爬虫技术,它帮助我们克服了静态HTML解析无法处理动态内容的问题。通过熟练运用这两个工具,开发者可以在Java环境中高效地抓取和处理各种网页信息。

    Jsoup+httpclient 模拟登陆和抓取

    Jsoup+httpclient 模拟登录和抓取知识点: 1. Jsoup库使用介绍: - Jsoup是一个Java的HTML解析器,能够直接解析HTML文档,提供类似于jQuery的操作方法。 - 主要功能包括从URL、文件或字符串中解析HTML,使用DOM或...

    jsoup+httpclient+jar包

    **JSoup库** JSoup是一个Java库,设计用于处理实际世界中的HTML。它提供了一种易于使用的API,用于抓取和解析数据,提取和修改数据,就像DOM、CSS和jQuery一样。JSoup能够理解HTML的不完美之处,使得在处理网页内容...

    Lucene4.8+IKAnalyzer+SpringMVC4+Jsoup+Quartz示例

    本示例项目"Lucene4.8+IKAnalyzer+SpringMVC4+Jsoup+Quartz"为我们提供了一个强大的智能搜索引擎搭建框架,它整合了多项关键技术,旨在帮助开发者高效地实现网页抓取、内容分析和定时任务等功能。 首先,Lucene是...

    基于java+Jsoup+HttpClient的网络爬虫技术的网络新闻分析系统设计与实现(源码+文档)网络爬虫-数据挖掘.zip

    资源名字:基于java+Jsoup+HttpClient的网络爬虫技术的网络新闻分析系统设计与实现(源码+文档)_MySQL_网络爬虫_数据挖掘.zip 资源内容:项目全套源码+完整文档 源码说明: 全部项目源码都是经过测试校正后百分百...

    java基于jsoup+mongodb的简单爬虫入门程序

    **Java基于Jsoup+MongoDB的简单爬虫入门程序** 在现代互联网环境中,数据的获取与分析变得至关重要,而爬虫技术就是实现这一目标的重要工具。本教程将介绍如何使用Java编程语言,结合Jsoup库进行网页抓取,并利用...

    图片列表RecyclerView+ListView+WebView+JzvdStdJZPlayer+Jsoup+Glide

    本项目结合了RecyclerView、ListView、WebView、JzvdStdJZPlayer、Jsoup和Glide等组件,为实现一个功能丰富的影视列表提供了示例。下面我们将深入探讨这些技术及其在项目中的应用。 首先,RecyclerView是Android ...

    jsoup + jdid网页动态解析,类似火狐firebug的html查看

    3. 考虑到网站反爬策略,适当使用延时和代理IP,避免被封禁。 4. 理解HTML结构,以便正确解析复杂布局的网页。 5. 在遇到错误或异常时,利用类似firebug的调试工具进行问题定位。 总结来说,jsoup和jdid的结合使用...

    Jsoup+JavaMail实现自动投票,验证邮箱功能

    1. **设置Jsoup**:导入Jsoup库,建立与目标网页的连接,使用`Jsoup.connect(url).get()`获取网页内容,然后通过CSS选择器找到投票按钮或所需元素。 2. **解析HTML**:使用`select()`方法选择特定的HTML元素,例如`...

Global site tag (gtag.js) - Google Analytics