html提取pdf,使用jsoup从HTML提取链接并用pdf显示

这段代码展示了如何使用Jsoup库从Cnblogs和Csdn抓取博客文章的标题和摘要,并利用iTextPDF库将这些信息转换成PDF文件。程序首先连接到指定的博客页面,提取每篇文章的标题和摘要,然后创建带下划线的蓝色链接,并在PDF中以合适的格式展示。
摘要由CSDN通过智能技术生成

提取HTML用jsoup-1.6.1.jar

用pdf显示用itextpdf-5.1.1.jar

1.[代码][Java]代码

package jsoup;

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.io.IOException;

import org.jsoup.Jsoup;

import org.jsoup.nodes.Element;

import org.jsoup.select.Elements;

import com.itextpdf.text.Anchor;

import com.itextpdf.text.BaseColor;

import com.itextpdf.text.Document;

import com.itextpdf.text.DocumentException;

import com.itextpdf.text.Font;

import com.itextpdf.text.PageSize;

import com.itextpdf.text.Paragraph;

import com.itextpdf.text.pdf.BaseFont;

import com.itextpdf.text.pdf.PdfWriter;

public class Cnblogs {

public static void main(String[] args) {

int page = 20;

org.jsoup.nodes.Document doc;

com.itextpdf.text.Document pdf = new Document(PageSize.A4.rotate(), 50,

50, 50, 50);

try {

PdfWriter writer = PdfWriter.getInstance(pdf, new FileOutputStream(

"G:\\cnblogs.pdf"));

pdf.open();

BaseFont zh_cn = BaseFont.createFont(

"C:\\WINDOWS\\Fonts\\msyh.ttf", "Identity-H",

BaseFont.NOT_EMBEDDED);

for (int p = 1; p <= page; p++) {

if (p == 1) {

doc = Jsoup.connect("http://www.cnblogs.com/").get();

} else {

doc = Jsoup.connect("http://www.cnblogs.com/p" + p).get();

}

Elements elements = doc.body().getElementsByClass(

"post_item_body");

for (Element e : elements) {

Elements titleEle = e.getElementsByClass("titlelnk");

String titleLink = titleEle.attr("href");

String titleText = titleEle.text();

Elements summaryEle = e

.getElementsByClass("post_item_summary");

String summary = summaryEle.text();

Anchor anchor = new Anchor(titleText, new Font(zh_cn, 14,

Font.UNDERLINE, BaseColor.BLUE));

anchor.setReference(titleLink);

Paragraph titlePar = new Paragraph();

titlePar.add(anchor);

Paragraph summaryPar = new Paragraph(summary, new Font(

zh_cn, 12));

summaryPar.setFirstLineIndent(24);

pdf.add(titlePar);

pdf.add(summaryPar);

pdf.add(new Paragraph(" "));

}

}

pdf.close();

writer.close();

} catch (FileNotFoundException e1) {

e1.printStackTrace();

} catch (DocumentException e1) {

e1.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

}

}

2.[代码][Java]代码

package jsoup;

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.io.IOException;

import org.jsoup.Jsoup;

import org.jsoup.nodes.Element;

import org.jsoup.select.Elements;

import com.itextpdf.text.Anchor;

import com.itextpdf.text.BaseColor;

import com.itextpdf.text.Document;

import com.itextpdf.text.DocumentException;

import com.itextpdf.text.Font;

import com.itextpdf.text.PageSize;

import com.itextpdf.text.Paragraph;

import com.itextpdf.text.pdf.BaseFont;

import com.itextpdf.text.pdf.PdfWriter;

public class CsdnBlog {

public static void main(String[] args) {

int page = 20;

org.jsoup.nodes.Document doc;

com.itextpdf.text.Document pdf = new Document(PageSize.A4.rotate(), 50,

50, 50, 50);

try {

PdfWriter writer = PdfWriter.getInstance(pdf, new FileOutputStream(

"G:\\csdn.pdf"));

pdf.open();

BaseFont zh_cn = BaseFont.createFont(

"C:\\WINDOWS\\Fonts\\msyh.ttf", "Identity-H",

BaseFont.NOT_EMBEDDED);

for (int p = 1; p <= page; p++) {

doc = Jsoup

.connect("http://blog.csdn.net/hot.html?page=" + p)

.header("User-Agent",

"Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.4; en-US; rv:1.9.2.2) Gecko/20100316 Firefox/3.6.2")

.get();

Elements elements = doc.body().getElementsByClass("blog_list");

for (Element e : elements) {

Elements titleEle = e.getElementsByTag("h1");

String titleLink = titleEle.last().attr("href");

String titleText = titleEle.last().text();

Elements summaryEle = e.getElementsByTag("dd");

String summary = summaryEle.text();

Anchor anchor = new Anchor(titleText, new Font(zh_cn, 14,

Font.UNDERLINE, BaseColor.BLUE));

anchor.setReference(titleLink);

Paragraph titlePar = new Paragraph();

titlePar.add(anchor);

Paragraph summaryPar = new Paragraph(summary, new Font(

zh_cn, 12));

summaryPar.setFirstLineIndent(24);

pdf.add(titlePar);

pdf.add(summaryPar);

pdf.add(new Paragraph(" "));

}

}

pdf.close();

writer.close();

} catch (FileNotFoundException e1) {

e1.printStackTrace();

} catch (DocumentException e1) {

e1.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

}

}

3.[图片] 截图00.png

18135226_yNnV.png

4.[图片] 截图01.png

18135226_HmIW.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值