手摸手学会使用webmagic爬虫框架

/**

  • jsoup测试案例
  • @author tuxuchen
  • @date 2021/11/18 18:17
    */
【手摸手学会使用webmagic爬虫框架】public class JsoupTest {
public static void main(String[] args) {
JsoupTest test = new JsoupTest(); test.findSearch("圣墟");

}
/**
  • 搜索功能
    *
  • @param name
  • @return
    */
public void findSearch(String name) {
// 获取搜索页文档树 Document document = getDocument("https://www.bequgexs.com/search.html?name=" + name); if (Objects.isNull(document)) { System.out.println("文档树获取失败"); return; } // 取出
    标签内 Element ul = document.select("#main > div.novelslist2 > ul").get(0); if (ul.isBlock()) { // 如果获取成功 // 从
      [PayPal下载](https://www.gendan5.com/wallet/PayPal.html)标签 取出
    • 标签 Elements li = ul.getElementsByTag("li"); // 从1开始 遍历为什么从1开始 是因为我们不需要第一个li标签 第一个li标签内是序号 for (int i = 1; i < li.size(); i++) { Element e = li.get(i); // 取出 li 标签内的标签 内就是我们需要的内容 Elements a = e.getElementsByTag("a"); String book = ""; // 遍历取出每个标签 for (int r = 0; r < a.size(); r++){ String text = a.get(r).text(); book = book + text + ":"; } System.out.println(book); } }

}
/**
  • document 是浏览器对象 是文档树 这跟前端document是一样的
    *
  • 从url上获取文档数,为了防止反爬虫,这是一些头字段
  • 如果失败,会重试10次
    *
  • @param url 爬取地址
  • @return document
    */
private Document getDocument(String url) {
// 重试次数 int count = 10; boolean flag = true; Document document = null; while (flag) { try { document = Jsoup.connect(url) .userAgent("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36") .get(); flag = false; } catch (IOException e) { if (count-- != 0) { System.out.println(("网页获取失败,原因:" + e.getMessage())); System.out.println("开始第" + (10 - count) + "次重试"); } else { System.out.println("获取文档未知异常:" + e.getMessage()); } } } return document;

}
}

    推荐阅读