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

前面我们详细讲了一下Jsoup发现这玩意其实也就那样,只要是可以访问到的静态资源页面都可以直接用他来获取你所需要的数据,详情情跳转-Jsoup爬虫详解,但是很多时候网站为了防止数据被恶意爬取做了很多遮掩,比如说加密啊动态加载啊,这无形中给我们写的爬虫程序造成了很大的困扰,那么我们如何来突破这个梗获取我们急需的数据呢,
下面我们来详细讲解一下如何获取
String startPage="https://item.jd.com/11476104681.html";
Document document = Jsoup.connect(startPage).userAgent
("Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko)
Chrome/52.0.2743.116 Safari/537.36").get();
这时其实已经获取到了整个页面的数据,但是商品价格是通过回调函数获取后再填充上去的,所以这就要求我们写爬虫的开发者要很有耐心的去寻找价格数据的回调接口,我们直接访问这个接口就可以直接获取这个价格,下面是演示:
通过这张截图可以看到他传过来的只是一个静态资源页面根本没有价格参数,那么价格怎么来的呢,继续找发现这个接口:
你会发现在这个接口是很多参数拼接上去的,那么我们要做的就是分析是不是所有的参数都有用
https://p.3.cn/prices/mgets?callback=jQuery9734926&type=1&area=1&pdtk= pduid=14930020970791835891856&pdpin=jd_6738608ee8eed&pdbp=0&skuIds=J_11476104681&source=item-pc
可以试着删除一些参数发现最终这个接口需要的参数其实很简单:
https://p.3.cn/prices/mgets?callback=jQuery9734926&type=1&area=1&skuIds=J_11476104681&source=item-pc
看到这里是不是很激动了,你其实可以换一些其他的JD商品ID一样能获取到当前价格和最高价格已经那什么价格我也不清楚,我们需要做的只是写一个Httpclient模拟请求这个接口
String doGet = HttpUtils.doGet("https://p.3.cn/prices/mgets?callback=jQuery9734926&type=1&area=1&skuIds=J_"+"11476104681"+"&source=item-pc", null);
System.out.println(doGet);
结果是这样:
jQuery9734926([{"id":"J_11476104681","p":"880.00","m":"980.00","op":"980.00"}]);
至于后面的你直接解析下JSON字符串那么你要的数据就GET到了。
注意一下
这是对回调请求到的数据进行的再请求获取,这只是对前面动态获取商品价格的一个补充,这种情况是价格本身通过主链接没有带到页面上而是加载过程中异步请求填充的,还有的时候是数据带过来了但是有相关的JS进行了相关处理我们还是获取不到,这个时候我们就得通过其他手段来获取这个数据,后面会讲解
将这些Jsoup和httpclient整合成一个爬虫模板完全可以完成你一些基本的爬取数据的操作,至于怎么整合就看个人喜好了。
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
# Java爬虫Jsoup+httpclient获取动态生成的数据
# Java爬虫
# Java爬虫Jsoup
# Java中使用开源库JSoup解析HTML文件实例
# java通过Jsoup爬取网页过程详解
# Java爬虫实现爬取京东上的手机搜索页面 HttpCliient+Jsoup
# Java 爬虫工具Jsoup详解
# Java实现爬虫给App提供数据(Jsoup 网络爬虫)
# Java如何导入Jsoup库做一个有趣的爬虫项目
# 回调
# 这是
# 加载
# 我也
# 来了
# 在这个
# 也就
# 你要
# 是这样
# 很有
# 其他的
# 给我们
# 不是很
# 不清楚
# 这就
# 这张
# 希望能
# 要做
# 可以看到
# 可以直接
相关文章:
如何用5美元大硬盘VPS安全高效搭建个人网站?
微信推文制作网站有哪些,怎么做微信推文,急?
如何选择长沙网站建站模板?H5响应式与品牌定制哪个更优?
C++如何将C风格字符串(char*)转换为std::string?(代码示例)
动图在线制作网站有哪些,滑动动图图集怎么做?
代购小票制作网站有哪些,购物小票的简要说明?
图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?
PHP正则匹配日期和时间(时间戳转换)的实例代码
建站之星如何实现PC+手机+微信网站五合一建站?
如何在宝塔面板创建新站点?
建站上传速度慢?如何优化加速网站加载效率?
详解jQuery停止动画——stop()方法的使用
如何高效完成独享虚拟主机建站?
网站设计制作公司地址,网站建设比较好的公司都有哪些?
建站之星如何防范黑客攻击与数据泄露?
如何在景安云服务器上绑定域名并配置虚拟主机?
无锡制作网站公司有哪些,无锡优八网络科技有限公司介绍?
建站之星伪静态规则如何正确配置?
建站VPS能否同时实现高效与安全翻墙?
用v-html解决Vue.js渲染中html标签不被解析的问题
内部网站制作流程,如何建立公司内部网站?
如何快速选择适合个人网站的云服务器配置?
制作营销网站公司,淘特是干什么用的?
美食网站链接制作教程视频,哪个教做美食的网站比较专业点?
如何实现建站之星域名转发设置?
网站制作知乎推荐,想做自己的网站用什么工具比较好?
Avalonia如何实现跨窗口通信 Avalonia窗口间数据传递
北京网页设计制作网站有哪些,继续教育自动播放怎么设置?
建站之星如何保障用户数据免受黑客入侵?
昆明高端网站制作公司,昆明公租房申请网上登录入口?
如何在建站之星网店版论坛获取技术支持?
活动邀请函制作网站有哪些,活动邀请函文案?
网站微信制作软件,如何制作微信链接?
如何通过智能用户系统一键生成高效建站方案?
网站按钮制作软件,如何实现网页中按钮的自动点击?
如何通过cPanel快速搭建网站?
C++时间戳转换成日期时间的步骤和示例代码
宿州网站制作公司兴策,安徽省低保查询网站?
制作企业网站建设方案,怎样建设一个公司网站?
免费公司网站制作软件,如何申请免费主页空间做自己的网站?
建站主机CVM配置优化、SEO策略与性能提升指南
家庭建站与云服务器建站,如何选择更优?
如何通过商城免费建站系统源码自定义网站主题?
宝塔建站无法访问?如何排查配置与端口问题?
大连企业网站制作公司,大连2025企业社保缴费网上缴费流程?
C++如何使用std::optional?(处理可选值)
制作网站外包平台,自动化接单网站有哪些?
如何在局域网内绑定自建网站域名?
如何安全更换建站之星模板并保留数据?
已有域名和空间,如何快速搭建网站?
*请认真填写需求信息,我们会在24小时内与您取得联系。