欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

java网络爬虫可以爬什么数据(免费分享java网络爬虫实战技巧)

程序员文章站 2023-11-24 10:49:40
文章目录前言1.引入依赖:2.代码实战:3.代理说明:总结前言现在一提到爬虫都是python,类库比较丰富,如果不会java的同学,去学习python爬虫比较靠谱,但是那是不是代表java就不能爬虫呢...

文章目录

  • 前言
    • 1.引入依赖:
    • 2.代码实战:
    • 3.代理说明:
  • 总结

前言

现在一提到爬虫都是python,类库比较丰富,如果不会java的同学,去学习python爬虫比较靠谱,但是那是不是代表java就不能爬虫呢?肯定不是的,事实上一些场景下,java爬虫使用起来更方便,更好用。

1.引入依赖:

java当中爬虫使用的是jsoup的类库,jsoup提供了一套非常省力的api,可通过dom,css以及类似于jquery的操作方法来取出和操作数据,让你请求网页后可以对网页进行dom操作达到爬虫的目的。

 <dependency>
            <groupid>org.jsoup</groupid>
            <artifactid>jsoup</artifactid>
            <version>1.10.3</version>
        </dependency>

2.代码实战:

案例一:
爬虫股票的分析结果:

 stockshow stockshow = new stockshow();
        string dourl = string.format("url", stockcode);
        document doc = null;
        try {
            doc = jsoup.connect(dourl).get();
            elements stockname = doc.select("div[class=stockname]");
            elements stocktotal = doc.select("div[class=stocktotal]");
            elements shortstr = doc.select("li[class=short]");
            elements midstr = doc.select("li[class=mid]");
            elements longstr = doc.select("li[class=long]");
            elements stocktype = doc.select("div[class=value_bar]").select("span[class=cur]");
            stockshow.setstockname(stockname.get(0).text());
            stockshow.setstocktotal(stocktotal.get(0).text().split(":")[1]);
            stockshow.setshortstr(shortstr.get(0).text().split(":")[1]);
            stockshow.setmidstr(midstr.get(0).text().split(":")[1]);
            stockshow.setlongstr(longstr.get(0).text().split(":")[1]);
            stockshow.setstocktype(stocktype.get(0).text());
        } catch (ioexception e) {
            log.error("findstockanalysisbystockcode,{}",e.getmessage());
        }

案例2:
抓取学校的信息:

 campus campus = new campus();
        string dourl = string.format(url, campusid);
        document doc = null;
        if (stringutils.isempty(arg.getip())){
            arg.setip("transfer.moguproxy.com");
            arg.setport(9001);
        }
        try {
            httpsutil.trusteveryone();
            random r = new random();
            int random = r.nextint(48);
            connection conn = jsoup.connect(dourl).proxy(arg.getip(), arg.getport());//.timeout(10000)
            conn .header("proxy-authorization", "basic "+"v1vxb2syu29mbujwtvy2rjpmthn5tdm0c3byqlfrm3hw").useragent(ua[random]).timeout(30000);
            doc = conn.get();
            elements names = doc.select("a[class=btn btn-xs btn-primary]");
            elements type = doc.select("a[class=campus_type_fix_b link_now_active]");
//            doc.select("ol[class=breadcrumb]").select("li").get(4).text()
            elements campusname = doc.select("ol[class=breadcrumb]").select("li");
            elements addressandtel = doc.select("div[class=page-header]").select("p");

3.代理说明:

案例一里面并没有使用代理ip,可以直接抓取。但是通常情况下,我们抓取的网站会设置反爬虫,封ip等,所以我们要设置代理ip,上线的案例2中使用的是蘑菇代理的代理隧道进行的代理设置,用起来还不错,如果确实需要可以进行购买。

总结

当然我上面写的2个案例只是举例子,其实dom的操作还有很多种的方法,大家如果想要进行爬虫,dom的基本操作肯定是需要的,一些基本的html知识是需要的。如果你想跟我有更多的交流,关注我的公众号:java时间屋 进行交流。