JAVA 采用htmlunit和Jsoup爬取网站详情,处理请求重定向得到重定向网站。以及使用代理进行网站访问

news/2024/5/8 16:12:02/文章来源:https://blog.csdn.net/public_pig/article/details/123135160
  1. 普通请求 采用Jsoup

        说明: 这是访问一般网站,拿到网页源码。有的网站可能有其他更多参数需要,比如cookie等等,就在.get()前继续添加.header("cookie","xxx")方法 或者采用cookie计算工具方法

 Document doc = null;try {doc =Jsoup.connect(url).userAgent(userAgent).header("User-Agent","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36").timeout(50 * 1000).get();} catch (IOException e) {log.info("获取信息失败! 爬取url是={}", url);}

2. 比如需求某一条信息,已通过jsoup获取到了它的跳转链接,但是它是一种重定向,我们通过fiddle可以看到效果如下图

 这里进行了重定向到另一个链接,同时还可以采用打开浏览器调试模式也可以在参数里看到

location就是重定向后的网站。这里如果再去通过Jsoup进行普通访问可能就会进不去。所以需要运用HtmlUnit 进行处理 

/**** 获取重定向后的网站url* @param url* @return*/public static String getRedirectUrl(String url) {//设置模拟浏览器WebClient webClient = new WebClient(BrowserVersion.CHROME);//是否等待页面javaScrpit加载webClient.getOptions().setJavaScriptEnabled(true);webClient.getOptions().setRedirectEnabled(true);// js运行错误时,是否抛出异常webClient.getOptions().setThrowExceptionOnScriptError(false); webClient.getOptions().setThrowExceptionOnFailingStatusCode(false);webClient.getOptions().setTimeout(60 * 1000); // 设置连接超时时间try {// HtmlUnit String RedirectUrl = webClient.getPage(url).getUrl().toString();if (StringUtils.isNotBlank(RedirectUrl)) {return RedirectUrl;}return null;} catch (FailingHttpStatusCodeException | IOException e) {log.error("获取重定向网站失败!");e.printStackTrace();log.error(Atom.ERROR_MSG,e.getMessage());}return null;}

 在得到了转链地址后再去访问就可以了。

 3.使用jsoup配置代理访问网站

String proxyIp = ips; // 你的代理API返回的ip地址int proxyPort = ;     //代理ip访问的端口号String proxyUser = "";  //你的代理用户账号String proxyPass = "";  //代理用户密码//进行代理权限验证Authenticator.setDefault(new Authenticator() {@Overrideprotected PasswordAuthentication getPasswordAuthentication() {return new PasswordAuthentication(proxyUser, proxyPass.toCharArray());}});Document doc =Jsoup.connect(url).proxy(JsopuUtils.getProxy(proxyIp, proxyPort)) //使用代理.header("user-agent", userAgent).timeout(210000) //这么长是因为临近一个ip结束时间.get();if (doc != null) {return doc;}return doc;

拿到document后就拿页面你要的就OK了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_865933.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网站统计中的数据收集原理及实现

网站数据统计分析工具是网站站长和运营人员经常使用的一种工具,比较常用的有谷歌分析、百度统计和腾讯分析等等。所有这些统计分析工具的第一步都是网站访问数据的收集。目前主流的数据收集方式基本都是基于javascript的。本文将简要分析这种数据收集的原理&#xf…

用户调研方法之网站分析应用实例

前言 网站分析是用户调研的一种重要方式,该方法通过记录用户使用产品的各种操作行为,比如点击了什么、使用了什么功能、从哪里来到哪里去、页面停留时间等等,协助发现UI、产品功能上的问题,为用户体验的优化提供参考依据。在此结合…

使用JWebUnit应注意的2个问题,并不是所有的网站都适合用JWebUnit的!

如果你看了 jWebUnit 框架让测试 Web 应用程序变得轻而易举 这片文章,那末你最好把下面这篇也读了。至少我觉得 那个所谓很好的网文,有很多关键的问题没有提到,如果你真想把jwebunit应用到实战中去,那末下面的问题你大多会遇到。 …

适合中大型网站的广告统计系统OpenADS(phpadsnew)实战手册+中文帮助文档

这些天研究广告统计系统,仔细看了一些google和一些其他网站的广告统计方式! 目前市面上基本上有两种开源的广告统计程序: 1、google Adsense(asp) 2、OpenADS(php)又叫 phpadsnew 这两个我都看了…

《网站分析实战--如何以数据驱动决策,提升网站价值》学习笔记

网站分析实战--如何以数据驱动决策,提升网站价值 一、网站分析的目的及流程1.1 网站分析的目标1.2 如何进行网站分析1.2.1 流量分析1.2.2 内容分析1.2.3 转化分析(漏斗分析)1.2.4 投资回报 1.3 网站分析基本流程1.3.1 定义1.3.2 测量1.3.3 分…

wamp安装与自定义网站根目录

wamp安装与自定义网站根目录 安装 百度搜索wamp下载。 双击直接安装下一步,安装目录可以根据自己的需要放在不同的目录下。 安装过程中会提示默认浏览器(默认IE)和默认打开文件(默认txt)的方式,可根据自己的需要修改。 在浏览器地址栏输入&#xff1…

学习笔记(自己知道的一些入门者java学习的网站,和学习方向)

1、慕课网 https://www.imooc.com/course/list?cjava&type3,这个网站有很多免费的视频但作为初学者的我感觉一脸蒙蔽,不懂现在的前沿技术和各种框架,连什么是Spring boot都不知道 里面有一个职业路径,是各种收费的视频和套餐…

mybatis中使用DATE_SUB()函数实现网站访问量日,月,年统计

一.定义和用法 DATE_SUB() 函数从日期减去指定的时间间隔。 二.语法 DATE_SUB(date,INTERVAL expr type date 参数是合法的日期表达式。expr 参数是您希望添加的时间间隔。 type 参数可以是下列值: Type 值MICROSECONDSECONDMINUTEHOURDAYWEEKMONTHQUARTERYEARSECO…

onMouseEnter 和onMouseOver区别以及跨浏览器解决策略

对于 mouseover 和mouseenter 两个事件 最大的区别就是 mouseenter 是 不冒泡的事件 ..这话怎么理解呢? <div id"parent"> <div id"child"></div> </div> 对于mouseover 时间来说 当鼠标从其他元素 移动到 child节点时发生 但…

【Linux权限】apache网站根目录的权限配置

问题引入 阿里云服务器上的一个网站根目录&#xff1a;/var/www/testpublic 这个是通过配置基于端口的虚拟主机设置的站点根目录。里面的东西如截图所示。 昨晚我在该目录下增加了一个menu.html&#xff0c;而该静态网页引用了img目录下的一张图片。但是奇怪的是我通过浏览器访…

什么是移动应用营销新趋势:Web需要SEO,App也需要ASO

android开发环境搭建用户可以通过门户发现自己感兴趣的内容&#xff0c;创业者可以通过36氪找到有价值的内容&#xff0c;所有人都可以通过Googlehttp://www.kmnk03.com/hxpfk/tf/137.html和百度搜索更多的内容。于是沿着这思 路&#xff0c;先有了应用商店和市场&#xff0c;接…

将tomcat用Eclipse发布网站

先建立一个Java 项目 1.新建一个java项目&#xff08;注意是Dynamic Web Project&#xff09;找不到的话在other 的 web中可找到&#xff0c;输入名字和调整版本为2.5点击finish 2.打开项目&#xff0c;右键WebContent&#xff0c;新建一个简单的html的文件 如 3.我们点击控制…

使用动态代理解决网站的中文乱码

动态代理模式方法 实践代码 public class EncodingFilter implements Filter{ Override public void init(FilterConfig filterConfig) throws ServletException { } Override public void doFilter(FilterConfig filterConfig) throws IOException,ServletException { final …

一步步构建大型网站架构

之前我简单向大家介绍了各个知名大型网站的架构&#xff0c;亿万用户网站MySpace的成功秘密、Flickr架构、YouTube网站架构、PlentyOfFish 网站架构学习、WikiPedia技术架构学习笔记。这几个都很典型&#xff0c;我们可以从中获取很多有关网站架构方面的知识&#xff0c;看了之…

响应式网站设计保护层级和内容完整性的方法

本篇文章中&#xff0c;我们将介绍在设计响应式网站过程中&#xff0c;保护层级和内容完整性的方法。 内容编排 在前文中使用媒介查询功能来重排页面元素&#xff0c;再深入一步&#xff0c;不光要考虑可用的空间&#xff0c;还必须照顾到内容。假设有一个4 栏的全宽网站&…

单页web应用是什么?它又会给传统网站带来哪些好处?

什么是单页应用&#xff1f; 单页应用是指在浏览器中运行的应用&#xff0c;它们在使用期间不会重新加载页面。像所有的应用一样&#xff0c;它旨在帮助用户完成任务&#xff0c;比如“编写文档”或者“管理Web服务器”。可以认为单页应用是一种从Web服务器加载的富客户端。 单…

解秘亿级网站的一本书——亿级流量网站架构核心技术

网站是直接面对广大客户的&#xff0c;是公司的门户&#xff0c;必须快速响应&#xff0c;必须持续可用&#xff0c;必须抗得住洪峰。任何一个网站的发展过程中都出现过问题&#xff0c;影响客户体验和商业利益&#xff0c;公司业务规模越大&#xff0c;网站出现问题的损失越大…

瞬时响应:网站的高性能架构

什么叫高性能的网站&#xff1f; 两个网站性能架构设计方案&#xff1a;A方案和B方案&#xff0c;A方案在小于100个并发用户访问时&#xff0c;每个请求的响应时间是1秒&#xff0c;当并发请求达到200的时候&#xff0c;请求的响应时间将骤增到10秒。B方案不管是100个并发用户…

301重定向,301跳转:IIS服务器网站整站301永久重定向设置方法

网站301重定向&#xff1a;阿里云windows服务器IIS6.0-IIS7.5通用全站&#xff08;包括内容页&#xff09;301重定向方法 最近PE准备把二级域名换成全拼域名”www.panoeade.com”试着在服务器iis上面直接设置HTTP重定向&#xff0c; 哪知道操作之后以前的域名可以跳转到新域名…

用Django创建一个照片墙网站

-0- 使用到的资源&#xff1a; 前端: Blueimp Gallery后端: Django缩略图: easy_thumbnails部署: nginx gunicorn supervisor开发环境是Centos 7.2 Python 2.7.5 上个图先: 界面 效果预览 -1- 创建项目 假设当前用户是ljgabc&#xff0c;当前目录是/home/ljgabc。 virtu…