jsoup网业爬虫

jsoup网业爬虫

依赖添加

<!-- jsoup HTML parser library @
官网地址:https://jsoup.org/
以下版本需要jdk1.8以上的版本支撑 -->
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.14.1</version>
</dependency>

创建实体类存储解析的数据

@Data
@NoArgsConstructor
@AllArgsConstructor
public class TestEntity {
    private String img;
    private String price;
    private String name;
    private String shopNum;

}

基本数据读取

public static void test1() throws IOException {
        String url="";
        //从url加载html
        Document document = Jsoup.connect(url).get();
        //获取html的标题
        String title = document.title();
        //获取head信息
        Element head = document.head();
        //获取body信息
        Element body = document.body();
        //通过指定的id获取元素内的所有元素
        Element element = document.getElementById("J_goodsList");
        System.out.println(element.html());
        //获取所有的li标签
        Elements lis = element.getElementsByTag("li");
        List<TestEntity> list = new ArrayList<>();
        TestEntity entity = null;
    	//所有的数据读取基本都和javascript一致
        for (Element on: lis) {
            //获取li标签中的元素
            //一般情况下图片会用到懒加载,如果使用src取不到则使用data-lazy-img进行读取
            String img = on.getElementsByTag("img").eq(0).attr("data-lazy-img");
            //获取书籍价格
            String price = on.getElementsByClass("p-price").eq(0).text();
            //获取书籍名称
            String name = on.getElementsByClass("p-name").eq(0).text();
            //获取出版社
            String shopNum = on.getElementsByClass("p-shopnum").eq(0).text();
            entity = new TestEntity(img,price,name,shopNum);
            list.add(entity);
        }
        list.forEach(System.out::println);
    }
posted @ 2021-07-19 21:47  幸运刘  阅读(36)  评论(0)    收藏  举报