JAVA爬虫豆瓣搜索页 解析 window.__DATA__ 策略

JAVA爬虫豆瓣搜索页 解析 window.__DATA__ 策略

最近在用java做豆瓣爬虫,节目分类那块问题不大,就是做搜索获取内容的时候,获取不到返回的页面数据,经过搜索后,已解决。

解决思路

  1. 发送http搜索请求,获取返回值
  2. 解析返回值中 “window.DATA” 的值
  3. 解码获取数据

步骤

  1. 发送请求获取返回值,提取 “window.__DATA__” ,是一串加密字符串
private String getDoubanWindowData(String moviename, String pagestart) throws BusinessException, InterruptedException {
        //网址
        String url = String.format("https://search.douban.com/movie/subject_search?search_text=%s&cat=1002&start=%s", moviename, pagestart);
        //返回值
        String htmlData = JobHttpUtils.getHtmlData(url, 0, JobContanst.DOUBAN_HOST_SEARCH, HttpType.DETAIL, false);
        //正则获取指定内容
        Pattern pp = Pattern.compile("window\\.__DATA__ = \"([^\"]+)\"");
        Matcher m = pp.matcher(htmlData);
        if (m.find()) {
            return m.group(1);
        }
        return "";
    }
  1. 解码获取数据

    解码的话有一位大神已经处理出一个JS文件,只需要调用方法可获得搜索数据

    这是我看到原博客地址:原博客地址(感谢大哥!)

    JS文件链接: JS文件 提取码:redz

    在这里插入图片描述 这个方法,传入加密字符串,返回一个Object
    实例: decrypt(‘加密字符串’).payload.items,返回值为数据数组

最后说一句

我本来计划用JAVA加载JS文件调用方法,在JAVA层面执行获取返回值,但是好像不太行,所以暂时用的方法是交给页面处理再传到后台。

如果有哪位兄弟可以后台直接调,麻烦留言告知一下,谢谢

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值