Java 爬虫实战二之获取CSDN博主排名

Java 爬虫实战二之获取CSDN博主排名

1.需求

根据csdn的博主网址,获取其个人排名信息。然后将信息写入到openTSDB中,【其实底层是写入到HBase数据库中】,进行数据的时序分析。

2.代码
  • CsdnHtml类
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

import java.util.ArrayList;

public class CsdnHtml extends Html {
    public ArrayList getSpecificInfo(String name, String url, String classType, String charset) {
        ArrayList arrayList = new ArrayList();

        String[] result = new String[4];
        Element tempEle = null;
        Document document = this.getHtmlTextByPath(name,url,charset);//care! The document is in org.jsoup.nodes
        if(document!=null){
            Elements eSets = document.getElementsByClass(classType);//care! The Element is in org.jsoup.select.Elements
            for(Element eUnit : eSets){// get every Element unit
                if(eUnit!=null){//eUnit是标签<div>那层
                    int i = 0;
                    for(Element eCell : eUnit.children())  //一个tr的子元素td,td内包含a标签
                    {//eCell 是标签<dl>那层
                        result[0]=eCell.children().first().ownText();//<dt>层
                        tempEle=eCell.child(1);//<dd>层
                        result[1]=tempEle.ownText();
                        if(i==0){
                            result[1]=tempEle.child(0).attr("href");
                            //result[2] = tempEle.children().attr("title");
                            result[2] = tempEle.child(0).attr("title").substring(0,2);//[0,2)
                        }
                        else
                            result[2]=tempEle.attr("title");
                        if(i==3)
                            result[2] = result[1];
                        System.out.println(result[0] +"\t"+ result[1] +"\t"+ result[2]);
                        i++;
                    }
                }
            }
        }
        return arrayList;
    }
}

该类中继承的抽象类Html,以及使用测试主类TestCrawler在上篇博文《Java爬虫实战一之获取全国信息》中都有介绍。
针对上述的代码,下面给出csdn官网的部分前端代码,目的是为了更好的使用dom树知识。

<dl>
    <dt>等级:</dt>
    <dd>
        <a href="https://blog.csdn.net/home/help.html#level" title="6级,点击查看等级说明" target="_blank">
            <svg class="icon icon-level" aria-hidden="true">
                <use xlink:href="#csdnc-bloglevel-6"></use>
            </svg>
        </a>
    </dd>
</dl>
<dl>
    <dt>访问:</dt>
    <dd title="176646">17万+</dd>
</dl>
<dl>
    <dt>积分:</dt>
    <dd title="7087">7087</dd>
</dl>
<dl title="4547">
    <dt>排名:</dt>
    <dd>4547</dd>
</dl>
3.执行结果

执行结果
下一步骤就是讲获取到的数据写入到openTSDB中,敬请期待下一篇博客。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

说文科技

看书人不妨赏个酒钱?

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值