LookAtStarSky 2017-06-13 12:07 采纳率: 0%
浏览 642

在eclipse可以正常运行的爬虫程序 , 放在Android 中竟然出错

爬去网页 其中一个是: http://www.csdn.net/article/2016-11-17/2826670;

    出错是 :  Element detail = doc.getElementsByClass("detail").get(0); 
    程序运行在网页数据中找不到detail 类 , 但是同样的程序在eclipse 运行正确,放在Android studio 却错

public List getNewsContent(String urlStr) {

    String dataHtml = DataUtil.getDataOfHtml(urlStr);
    this.content = new ArrayList<>();
    NewsContent newc;
    Document doc = Jsoup.parse(dataHtml);

    Element detail = doc.getElementsByClass("detail").get(0);

    //标题
    Element title = detail.getElementsByTag("h1").get(0);
    newc = new NewsContent();
    newc.setTitle(title.text());
    newc.setType(NewsType.TYPE_TITLE);
    this.content.add(newc);


    //时间  和 作者 等信息
    Element date  = detail.getElementsByTag("h4").get(0);
    newc = new NewsContent();
    newc.setDate(date.text());
    newc.setType(NewsType.TYPE_DATE);
    this.content.add(newc);

    //摘要
    Element summary = detail.getElementsByClass("summary").get(0);
    newc = new NewsContent();
    newc.setSummary(summary.text());
    newc.setType(NewsType.TYPE_SUMMARY);
    this.content.add(newc);

    //新闻信息
    Element content_ele = detail.getElementsByClass("con news_content").get(0);
    Elements children = content_ele.children();

    for(Element ele : children){


        //加载此 p 标签中的图片信息
        Elements imgs = ele.getElementsByTag("img");
        for(Element img: imgs){
            newc = new NewsContent();
            newc.setImg(img.attr("src"));
            newc.setType(NewsType.TYPE_IMG);
            this.content.add(newc);
        }

        //移除图片
        imgs.remove();

        if(ele.text().equals(""))
            continue;

        newc = new NewsContent();
        newc.setType(NewsType.TYPE_CONTENT);
        try{


            Element ment = ele.getElementsByTag("h2").size() > 0 ?
                    ele.getElementsByTag("h2").get(0):null;
            if(ment != null && !ment.text().equals("")){

                System.out.println("Tag:  " + ment.text());
                newc.setType(NewsType.TYPE_BOLD_TITLE);

            }

        }catch(Exception e){
            e.printStackTrace();
        }



        newc.setContent(ele.text());
        this.content.add(newc);



    }


    return this.content;
}
  • 写回答

1条回答 默认 最新

  • 王二蛋! 后端领域优质创作者 2023-02-20 21:04
    关注

    两个不是一个环境,依赖也不同。找对应的依赖

    评论

报告相同问题?

悬赏问题

  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?