Jsoup爬虫实例

Jsoup爬虫实例一、简介jsoup是一款Java的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数。

一、简介

jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。(来源百度)

 二、准备

首先你需要找到一个你需要爬取数据的网站,找到你需要的数据所在HTML中的定位

Jsoup爬虫实例

 可以根据下面这个指令查看你定位是否正确

document.querySelector(".zwm").innerText

Jsoup爬虫实例 

 下面事具体实现:

public static void collectSingle() throws IOException{
        //获取5页公司数据
        for (int i = 1; i <=5; i++) {
            //获取页面文本的地址 地址省略了
            String addr = "http://www.*****.com/job/p"+i+".shtml";
            URL url = new URL(addr);
            Document doc = Jsoup.parse(url,5000);
            //解析内容,提取数据
            Elements as = doc.select("a.comName");
            as.forEach(a->{
                String href = a.attr("href");
                href = "http://www.*****.com"+href;
                //插入数据库的sql语句
                String sql = "insert into com values (?,?,?,?,?,?,?,?,?)";
                try{
                    //提取地址中的id
                    String sid = href.replaceAll("\\D+(\\d+)\\.shtml","$1");
                    int id = Integer.parseInt(sid);
                    SpiderHelper.collectSingle(href,sql,id,
                            ".zwm>span",
                            ".zwm>em",
                            ".gsmc:nth-child(2)",
                            ".jbyq",//要求
                            ".fuli",//福利
                            ".gsmc>a>span",//公司名称
                            ".gsmc>span",//发布时间
                            ".zwmsCon",//简介
                            ".gzddCon>span");
                } catch (IOException e) {
                    e.printStackTrace();
                }catch (RuntimeException e){
                    //跳过DBhelper产生的运行是异常===》相同的公司数据
                }
            });
        }
    }

查看数据库,运行成功!

Jsoup爬虫实例

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/38437.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注