java爬虫抓取动态网页(java爬虫抓取动态网页还没抓取该怎么办?(图))

优采云 发布时间: 2021-11-01 15:17

  java爬虫抓取动态网页(java爬虫抓取动态网页还没抓取该怎么办?(图))

  java爬虫抓取动态网页时,上方网页已经抓取,但是下方网页还没抓取,该怎么办?首先解释一下下方网页此时的抓取策略,若是使用f12进入开发者选项,选择“打开控制台”,在搜索框输入“element.screenshot”即可找到下方网页提示的代码。在抓取上方动态网页的同时,下方的网页也同时抓取到了。而我们要抓取的是通过上方get方法获取的下方java源码页,该代码如下:图1上方页的源码如图2所示,代码第二行是ajax回调方法,简单来说就是用了上方的get方法提交信息到服务器,服务器返回参数给ajax的代码,然后通过这个返回值去爬取下方代码,根据dom去处理动态页面中有用的数据。

  在上方代码中有个重要的逻辑:若上方代码里某条数据内容并没有就返回“error_element.thumbnailfoa()”这个错误页面(或是通过f12打开github开发者工具的时候提示该选项无效,因为这个选项是开发者在向浏览器上传数据的时候,获取到该网页的代码,然后上传的。)那么,通过该代码抓取的该代码页也就不会有下方代码的java返回值,此时下方页就返回空。

  大家可以打开下方代码看看效果,图3所示的情况是获取到的所有数据都用“url”关键字加了formdata值,我们没有wxss代码,也就不能通过style来定位formdata值,正确做法为下方代码抓取该代码页同时,将获取到的返回值setinfos添加到本页数据下方。(注意:要定位formdata,由上方源码结果来看,该get方法只传递参数,没有将该参数作为返回值)。

  最后总结一下,如果上方代码的动态页数据是通过js注入上传,那么会再次上传数据返回,不然就返回空值。如果上方代码中不再有对外setdata数据,那么原先我们获取到的上方代码页就不会再返回这条数据。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线