摘要:
该内容为Java学习爬虫网站内容demo文件,将指定的内容抓取保存到指定的文件内。
package reptileproject.reptileproject;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
public class CrawlerBase {
/**
* jsoup方式 获取虎扑新闻列表页
* @param url 虎扑新闻列表页url
*/
public void jsoupList(String url){
// 创建获取指定的标签集合
Elements elements = null;
// 创建文件流
PrintWriter printWriter = null;
try {
// 获取URL的HTML内容
Document document = Jsoup.connect(url).get();
// 根据class标签获取html内容
Elements div = document.getElementsByClass("fixed_content");
// 获取指定的标签内容
elements = div.select("ul > li > div.list_con > div.title > h2 > a");
// 创建文件并获取文件流
printWriter = new PrintWriter(new OutputStreamWriter(new FileOutputStream("D:\\爬虫文件.csv"), "utf-8"));
// 文件添加bom格式
printWriter.write(new String(new byte[]{
(byte) 0xEF, (byte) 0xBB, (byte) 0xBF}));
} catch (IOException e) {
e.printStackTrace();
}
// 遍历内容
for (Element element:elements){
// 获取详情页链接
String d_url = element.attr("href");
// 获取标题
String title = element.ownText();
System.out.println("详情页链接:"+d_url+" ,详情页标题:"+title);
// 详情链接写入文件内容
printWriter.println(d_url);
// 标题写入文件内容
printWriter.println(title);
}
// 显示关闭数据流,避免数据丢失
printWriter.close();
}
}
注释详细,更好的让读者理解代码。