网络爬虫
网络爬虫(又称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。
简单的说就是爬取网页,解析,处理。
需要使用到 Jsoup 工具来做 http 请求:Jsoup 工具下载
尝试爬取一下 起点中文网 中的小说信息,确定要爬取页面
点击 F12 ,打开浏览器调试界面,找到需要解析页面的元素。
这里我们需要爬取小说的书名,类型,作者,类别,简介字段。根据 HTML DOM树,找到对应的元素,并对其进行解析。
代码
import java.io.IOException;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import com.hist.util.DataUtils;
public class SpiderDemo {
public static final String URL = "https://www.qidian.com/search?kw=%E5%AE%8C%E7%BE%8E%E4%B8%96%E7%95%8C";
public static void main(String[] args) {
try {
// 进行 http 连接,get 请求方式
Document doc = Jsoup.connect(URL).get();
// 根据HTML DOM树原理,查找到对应的元素
Elements bookList = doc.select(".book-img-text ul li");
for(Element e : bookList) {
String[] split = e.select(".author a").text().split(" ");
System.out.println("小说名称:"+e.select("h4 a").text());
System.out.println("小说作者:"+split[0]);
System.out.println("小说类别:"+split[1]);
System.out.println("小说简介:"+e.select(".intro").text());
System.out.println("小说总字数:"+DataUtils.spiderSubstring(e.select(".book-right-info .total p").first().text(),3));
System.out.println("小说总推荐:"+DataUtils.spiderSubstring(e.select(".book-right-info .total p").last().text(),3));
System.out.println("---------------------------");
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
运行结果
网络爬虫入门很简单,但是要注意不是所有数据都允许你爬取,还有一定的反爬虫策略,下篇博客再给大家介绍。