java爬虫抓取动态网页(Java爬虫Jsoup+httpclient获取动态生成的数据(组图))

优采云 发布时间: 2021-09-19 22:05

  java爬虫抓取动态网页(Java爬虫Jsoup+httpclient获取动态生成的数据(组图))

  您想知道Java爬虫jsup+httpclient获取动态生成数据的相关内容吗?在本文中,我们将仔细解释Java爬虫的相关知识和一些代码示例。欢迎阅读并更正。让我们首先关注:Java爬虫jsup+httpclient获取动态生成的数据,Java爬虫,Java爬虫jsup。让我们一起学习

  Java爬虫程序jsup+httpclient获取动态生成的数据

  我们之前详细讨论过,发现事情就是这样。只要它是一个可以访问的静态资源页面,您就可以直接使用它来获取所需的数据。细节跳跃——jsup爬虫的详细解释,但很多时候网站为了防止数据被恶意爬虫,有很多掩码,比如加密和动态加载,这实际上给我们编写的爬虫程序带来了很多麻烦,那么,我们如何突破这一限制,获得我们迫切需要的数据呢

  让我们详细解释一下如何获得

  

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字符串,获得您想要的数据

  注意

  这是对回调请求的数据的重新请求获取,这只是对先前商品价格动态获取的补充。在这种情况下,价格本身不会通过主链接带到页面,而是在加载过程中由异步请求填写。有时候会带来数据,但是相关的JS处理后我们还是无法得到,这个时候我们要通过其他的方式来获得这个数据,后面会解释

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线