記錄一次使用jsoup爬取頁面

羅俊朋發表於2020-12-23

第一次瞭解爬蟲,首先要引入一個jar包:

		<dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.jsoup</groupId>
            <artifactId>jsoup</artifactId>
            <version>1.10.2</version>
        </dependency>

引入到專案中後,編寫以下程式碼:

//實體類 用於轉換爬取到的資訊 我這裡是用了lombok外掛的 第一個依賴
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Order implements Serializable {
    private static final long serialVersionUID = -2561447412331251491L;

    private String schedule;
    private String content;
    private String price;
    private String range;

}

以下是爬取的方法:

/**
 * @Description:
 * @Author: ljp
 * @CreateDate: 2020/12/23 16:18
 */
public class SpidersUtil {

    public static void main(String[] args) throws Exception {
        new SpidersUtil().parseJD("").forEach(System.out::println);
    }

    public List<Order> parseJD(String keywords) throws Exception {
        List<Order> list = new ArrayList<>();
        for (int i = 1; i < 4; i++) {
            String url = "https://task.zbj.com/hall/bid/page" + i + ".html?so=1&ss=0";
            // 解析網頁.(Jsoup返回Document就是瀏覽器的Document物件)
            Document document = Jsoup.parse((new URL(url)), 30000);
            Elements elements = document.getElementsByClass("demand-card");
            for (Element el : elements) {
                Order order = new Order();
                order.setSchedule(el.getElementsByClass("card-pub-left frt").eq(0).text());
                order.setContent(el.getElementsByClass("demand-card-body").eq(0).text());
                order.setPrice(el.getElementsByClass("demand-price").eq(0).text());
                order.setRange(el.getElementsByClass("demand-foot-tags flt").eq(0).text());
                list.add(order);
            }
        }
        System.out.println(list.size());
        return list;
    }
}

其實蠻簡單的,就是通過引入的jar包可以爬取網頁,將爬取到的html頁面解析為xml格式,然後再去解析這個xml拿到你需要的東西就可以了,這裡爬取的是豬八戒的招標列表,記錄一下!

相關文章