JAVA爬虫入门

最基本的爬虫就是httpclient和jsoup两个包 一个是负责下载资源一个是负责解析数据(当然jsoup也能够下载资源 只是这样效率不高)

非常简单

就是jsoup包获取到dom对象然后对dom对象操作就行了
依赖

    <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpclient</artifactId>
        <version>4.5.2</version>
    </dependency>
    
    <dependency>
        <groupId>org.jsoup</groupId>
        <artifactId>jsoup</artifactId>
        <version>1.11.3</version>
    </dependency>

//这个包是提供一些utils
    <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-lang3</artifactId>
        <version>3.7</version>
    </dependency>

代码

    @Test
    public void testUrl() throws Exception {
//        解析url地址  第一个参数是访问的url  第二个参数是访问时候的超时时间
//        解析url地址   第一个参数是url第二个参数是访问的超时时间
        Document doc = Jsoup.parse(new URL("https://www.baidu.com"), 10000);   //得到dom对象

//        使用标签选择器  获取title标签中的内容
        String content = doc.getElementsByTag("title").first().text();
        System.out.println(content);
    }



    @Test
    void testData() throws Exception {
        Document doc = Jsoup.parse(new File("G:\\Windows ui\\windows-10-UI-master\\index.html"), "utf8");
        Element element = doc.getElementById("file-explorer");
        System.out.println(" 获取到的元素id:" + element.id());   //获取元素id
        System.out.println(" 获取到的元素class:" + element.className());  //获取class
        System.out.println("根据属性名获取属性值:" + element.attr("class"));
        System.out.println("获取元素所有属性:" + element.attributes());

    }




    @Test
    void tetsSelect() throws Exception {
        Document doc = Jsoup.parse(new File("G:\\Windows ui\\windows-10-UI-master\\index.html"), "utf8");
        Elements elements = doc.select("span");   //根据标签查找
        Element element = doc.select("#file-explorer").first();   //根据id查找
        Element element2 = doc.select(".file-explorer").first();   //根据class查找
        Element element3 = doc.select("[file]").first();   //根据属性查找
        Element element4 = doc.select("[class=file]").first();   //根据属性和属性值查找
        System.out.println(element.text());
        for (Element element1 : elements) {
            System.out.println(element1.text());
        }


    }


    @Test
//    组合使用选择器
    void SelectZUhe() throws IOException {
        Document doc = Jsoup.parse(new File("G:\\Windows ui\\windows-10-UI-master\\index.html"), "utf8");
        Element element = doc.select("div.icons-main").first();   //元素+class的组合   div且class为icons-main这个的
        //查找父元素下面的子元素
//        这个就是查找所有.icons-main下面的所有a标签
        Elements elements = doc.select(".icons-main a");


//        parent  > child    查找某个父元素下的直接子元素
//       比如.city > ul >li 找的是cty第一级子元素的ul  再找ul下面的li
        for (Element element1:elements){
            System.out.println(element.text());
        }
        System.out.println(element.text());


    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值