java爬取网页内容入门

介绍

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

准备工作

创建一个java的项目,这里我采用的是Maven项目,首先导入所需要的依赖包jsoup

<!-- https://mvnrepository.com/artifact/org.jsoup/jsoup -->
        <dependency>
            <groupId>org.jsoup</groupId>
            <artifactId>jsoup</artifactId>
            <version>1.11.3</version>
        </dependency>

解析爬取内容

这里我们爬取的是一个天气预报的网址,为了能够让大家快速了解这个jsoup爬取的方法,这里主要是通过爬取获得广州的今天天气情况。

  • 首先,检查网页源码,发现这个代码段

解析的天气代码
这里框框里面的是我们需要获取的内容

编写工具

  • JsoupUtil.class – 连接url工具
  • WeatherUtil.class – 获取广州天气工具

实现步骤

  1. 编写url工具,使用Document doc = Jsoup.connect(“http://example.com/”).get();获取url连接
public class JsoupUtil {

    /**
     * 从一个url获取
     */
    public Document getDocument(String url) {
        try {
            return Jsoup.connect(url).get();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }
}

  1. 编写获取天气工具:
public class WeatherUtil {

    /**
     * 获取广州的今天天气
     */
    public String getWeather() {
        //获取url连接对象
        JsoupUtil jsoupUtil = new JsoupUtil();
        Document doc = jsoupUtil.getDocument("http://www.weather.com.cn/weather1d/101280101.shtml");
        //获取目标html代码:查id为today的标签元素
        Elements elements = doc.select("[id=today]");
        //获取今天天气:获取input标签的id为hidden_tile的元素,再获取该元素的value属性值
        String weather = elements.select("input[id=hidden_title]").attr("value");
        return weather;
    }
}
  1. 最后测试是否成功
public class WeatherTest {
    public static void main(String[] args) {
        WeatherUtil weatherUtil = new WeatherUtil();
        System.out.println(weatherUtil.getWeather());
    }
}

参考资料

  • jsoup官方中文文档为:http://www.open-open.com/
  • API为:http://jsoup.org/apidocs/

总结

主要是通过select定位到标签元素,再结合JavaScript里面的一些例如append()的方法找到所需的标签,最后使用text()或其他方法获取到内容,其他方法详情可以参考上面的官方文档。下一期我们来体验编写一个java工具:发送验证码到电子邮箱

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值