版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
前言:闲来无事,觉得爬虫技术很高大上,于是小小的研究了一下。
网上查过资料后发现java爬虫也是有很多种类的,可以使用比较成熟的框架。我这里使用的是jsoup,简单粗暴的一种技术。
先做来个简单的demo:
先找一个简单点的网页,就这个了,读者杂志,文章还是很不错的。
ps:此网址获取数据将只用于练习,不会非法传播。
开始写代码:
-
package com.lezhi;
-
-
import org.jsoup.Jsoup;
-
import org.jsoup.nodes.Document;
-
import org.jsoup.nodes.Element;
-
import org.jsoup.
select.Elements;
-
-
import java.io.FileWriter;
-
-
public
class
PaChongTest {
-
public void test() {
-
FileWriter fw =
null;
-
int a =
1;
-
try {
-
String allUrl =
"http://www.52duzhe.com";
-
Document docAll = Jsoup.connect(allUrl).
get();
-
Elements urlAll = docAll.
select(
".time");
-
Elements hrefAll = urlAll.
select(
"a[href]");
-
for (Element hr : hrefAll) {
-
String url = hr.attr(
"abs:href");
-
Document doc = Jsoup.connect(url).
get();
-
//获得文章标题
-
Elements main = doc.getElementsByClass(
"title");
-
Elements link = main.
select(
"a[href]");
-
for (Element hr1 : link) {
-
String href = hr1.attr(
"abs:href");
-
Document inDoc = Jsoup.connect(href).
get();
-
Elements inMain = inDoc.getElementsByClass(
"blkContainer");
-
Elements h1 = inMain.
select(
"h1");
-
Elements artInfo = inMain.
select(
".artInfo");
-
Elements blkContainerSblkCon = inDoc.getElementsByClass(
"blkContainerSblkCon");
-
Elements p = blkContainerSblkCon.
select(
"p");
-
String title = h1.text();
-
String author = artInfo.
select(
"#pub_date").text();
-
String source = artInfo.
select(
"#media_name").text();
-
String content =
"";
-
for (Element contxt : p) {
-
content += contxt.text();
-
}
-
fw =
new FileWriter(
"D:\\读者\\"+hr.text()+
".doc",
true);
-
fw.write(
"标题:"+title +
"\r\n" + author +
"\r\n" + source +
"\r\n" + content);
//这里向文件中输入结果123
-
fw.flush();
-
// System.out.println("标题:" + title);
-
// System.out.println(author);
-
// System.out.println(source);
-
// System.out.println("内容:" + content);
-
System.
out.println(
"导出第"+a+++
"个");
-
}
-
System.
out.println(
"test");
-
}
-
}
catch (Exception e) {
-
e.printStackTrace();
-
}
-
}
-
-
public static void main(String[] args) {
-
PaChongTest pt =
new PaChongTest();
-
pt.test();
-
-
-
}
-
}
fw = new FileWriter("D:\\读者\\"+hr.text()+".doc", true);
这里的路径修改成自己电脑的路径。
所用jar包 jsoup-1.11.3.jar,连接在后面。
运行效果:
至此一个简单的Java爬虫demo完成啦!
最后附上源码:https://download.csdn.net/download/zhongyantao1022/10566017
源代码中51行这里写错了 content += p.text(); 应该是 content += contxt.text();
感谢 @x_ring 指正!