2018-01-11 Jsoup语法学习(我的爬虫第一步)

爬虫,当我第一次听到这个名词的时候就觉得这一定是一个很好玩,而且很好用的东西。今天是我第一次接触Jsoup这个框架,因此记录一下我的Jsoup的基础学习。

Jsoup是什么?简单的来说就是一款java的HTML解析器,它提供了非常丰富的API,我们可以通过其静态的Jsoup对象来解析一个HTML页面,并通过Doc对象来操作解析以后的HTML页面,也就是说经过解析的HTML页面你想对他怎么操作都可以,可以获取你想要的数据,你想要的超链接,你想要的标题等等。下面是我通过Jsoup官网提供的API学习Jsoup基本语法的代码:

public class JsoupTest {

    /**
     * @Title JsoupTest
     * @Description Jsoup方法测试
     * @return void
     * @author Lin07
     * @date 2018-1-9 下午5:11:07
     */
    @Test
    public void JsoupFunctionTest(){
        //1.Jsoup.parse方法:解析一个完整的html字符串
        String html="My first JsoupTest" +
                "Hello welcome to Jsoup";
        Document doc=Jsoup.parse("html:"+html);
        System.out.println(html);
        
        //2.Jsoup.parseBodyFragment:将不完整Body片段解析为一个完整Body片段
        String html2="

Just do it

"; Document doc2=Jsoup.parseBodyFragment(html2); Element body=doc2.body(); System.out.println("bodyFragment:"+body); //3.从一个URL加载一个Document对象 //3.1:connection():创建一个新的连接 //3.2:get():从创建的连接中取得和解析一个HTML页面 try { Document doc3=Jsoup.connect("http://www.zhbit.com/").get(); String title=doc3.title(); System.out.println("title:"+title); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } //4.根据一个文件加载Doucument对象 File input=new File("temp/input.html"); try { Document doc4=Jsoup.parse(input, "UTF-8","http://www.zhbit.com/"); System.out.println("input.html:"+doc4); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } /** * * @Title Extracting data * @Description 数据抓取 * @param null * @return void * @author Lin07 * @date 2018-1-9 下午9:00:40 * @throws */ @Test public void ExtractingData(){ File input=new File("temp/input.html"); try { Document doc=Jsoup.parse(input,"UTF-8","http://www.zhbit.com"); Element content=doc.getElementById("content"); System.out.println(content); Elements links=doc.getElementsByTag("a"); //使用Dom的方法来遍历一个HTML页面 for(Element link:links){ String linkHref=link.attr("href"); String linkText=link.text(); System.out.println(linkHref+":"+linkText); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } /** * * @Title ExtractingData2 * @Description 从元素集合中抽取属性、文本和HTML内容 * @param null * @return void * @author Lin07 * @date 2018-1-10 上午11:36:59 * @throws */ @Test public void ExtractingData2(){ String html="

An example link.

"; Document doc=Jsoup.parse(html); Element link=doc.select("a").first();//查找第一个a元素 String text=doc.body().text();//取得整HTML页面中的文本信息 String linkHref=link.attr("href");//取得连接地址 String linkText=link.text();//取得连接的文本 System.out.println(text); System.out.println(linkHref); System.out.println(linkText); } }

上面是我们最常用的Jsoup所提供的方法。这次我们利用Jsoup来解析的HTML页面只是我自己用字符串拼接出来的,下次就来个真正操作,从网络上抓取HTML页面,再来分析数据。今天是我第一次在上写作,希望自己可以坚持常到,将自己的学习过程记录下来。未完,待续。。。。

你可能感兴趣的:(2018-01-11 Jsoup语法学习(我的爬虫第一步))