1、使用HttpClient获取页面HTML
2、解析HTML获取最大页数和第一页的图像地址
3、分别抓取各页的图像
4、使用iText将所有页面的图像做成PDF
前提是需FQ(PacketiX VPN)
private static final String SD_URL = "http://www.slideshare.net/ProphetsAgency/trends-in-interactive-design-2013";
private static final String OUT_PUT_FOLDER = "C:\\sd\\";
private static final String PDF_NAME = "trends-in-interactive-design-2013.pdf";
public static void main(String[] args) throws Exception {
// Get HTML
HttpClient client = new DefaultHttpClient();
HttpGet get = new HttpGet(SD_URL);
HttpResponse res = client.execute(get);
if (res.getEntity() != null) {
String htmldata = EntityUtils.toString(res.getEntity());
int maxpage = 0;
String imgurl = "";
List<String> fileNameList = new ArrayList<String>();
// Get max page
Pattern dataPattern = Pattern.compile("<span>/(.+)</span>", Pattern.CASE_INSENSITIVE);
Matcher tagMatcher = dataPattern.matcher(htmldata);
if (tagMatcher.find()) {
maxpage = Integer.parseInt(tagMatcher.group(1));
}
// Get the first page image's URL
Pattern dataPattern2 = Pattern.compile("background-image:url\\(\\'(.+)\\?.+\\'\\)", Pattern.CASE_INSENSITIVE);
Matcher tagMatcher2 = dataPattern2.matcher(htmldata);
if (tagMatcher2.find()) {
imgurl = tagMatcher2.group(1);
}
System.out.println("maxpage:" + maxpage);
// Get all page images to local
for (int i = 1; i <= maxpage; i++) {
String[] uriArray = imgurl.split("/");
String filename = uriArray[uriArray.length-1];
String[] nameArray = filename.split("-");
filename = nameArray[0] + "-" + i + "-" + nameArray[2];
imgurl = imgurl.substring(0,imgurl.lastIndexOf("/")) + "/" + filename;
getUrlImg(imgurl, OUT_PUT_FOLDER + filename);
System.out.println("imgurl:" + imgurl);
fileNameList.add(filename);
}
// Create PDF
Rectangle rect = new Rectangle(PageSize.B5.rotate());
Document document = new Document(rect);
PdfWriter.getInstance(document, new FileOutputStream(OUT_PUT_FOLDER + PDF_NAME));
document.open();
for (int i = 0; i < fileNameList.size(); i++) {
if (i != 0) {
document.newPage();
}
Image img = Image.getInstance(OUT_PUT_FOLDER + fileNameList.get(i));
img.setAlignment(Image.TOP);
document.add(img);
}
document.close();
}
EntityUtils.consume(res.getEntity());
client.getConnectionManager().shutdown();
}
public static void getUrlImg(String URLName, String target) throws Exception {
URL url = new URL(URLName);
URLConnection urlconn = url.openConnection();
HttpURLConnection httpconn = (HttpURLConnection) urlconn;
int HttpResult = httpconn.getResponseCode();
if (HttpResult != HttpURLConnection.HTTP_OK) {
System.out.print("fail");
return;
}
BufferedInputStream bis = new BufferedInputStream(urlconn.getInputStream());
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(target));
byte[] buffer = new byte[1024];
int num = -1;
while (true) {
num = bis.read(buffer);
if (num == -1) {
bos.flush();
break;
}
bos.flush();
bos.write(buffer, 0, num);
}
bos.close();
bis.close();
}
分享到:
相关推荐
pimpinella_3cd_01_0716
FIB English learning
X86-jq安装包
AB PLC例程代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!
大圣挪车小程序1.3.5 前端
Manus.im 产品及开发团队研究报告.pdf
AB PLC例程代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!
sun_3ck_01a_0918
下载 1. 单击“立即下载”,以下载该文件。 2. 出现“文件下载”窗口后,单击“保存”,以将文件保存到硬盘。 安装 1. 浏览至文件下载目标位置并双击新下载的文件。 2. 仔细阅读对话窗口中显示的发布信息。 3. 下载并安装对话窗口中标识的任何必备项,然后再继续。 4. 单击“Install”(安装)按钮。 5. 按照其余提示执行更新。 安装 1. 将解压的文件复制到可访问Windows的介质。 2. 将系统重新引导至Windows操作系统。 3. 打开“服务器管理器”->“设备管理器”->“存储控制器”,然后单击“PERC控制器”。 5. 单击“更新驱动程序软件”,并按照提示更新驱动程序。 4. 重新引导系统以使更改生效。
支持所有操作系统一键安装。
matlab程序代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!
AB PLC例程代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!
swanson_01_1106
AB PLC例程代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!
AB PLC例程代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!
sun_3ck_01_0919
各城市方言距离数据-中山大学岭南学院产业与区域经济研究中心 方言距离是指两种或多种方言之间的相似程度或差异程度。参考中山大学岭南学院产业与区域经济研究中心的刘毓芸等(2015)文献。他们基于方言树图,并参考《汉语方言大词典》和《中国语言地图集》对方言的划分,将汉语方言从宽泛到具体分为以下几个层级:汉语→方言大区→方言区→方言片。为了量化县与县之间的方言差异,他们采用了一种赋值方法: 若它们分属不同方言大区,则距离为3。: 若两个县同属一个方言片,则它们之间的方言距离为0; 若两个县属于同一方言区但不同方言片,则距离为1; 若它们属于同一方言大区但不同方言区,则距离为2; 方言距离是一个反映方言之间相似程度或差异程度的重要指标,它在语音识别、方言研究等领域具有广泛的应用价值。 参考文献:[1]刘毓芸, 徐现祥, 肖泽凯. 2015. 劳动力跨方言流动的倒U型模式[J]. 经济研究, 50(10): 134-146+162. 指标 语系、语族、方言大区、方言区/语支、方言片/语种、Supergroup、Dialect、group、Sub-dialect、groupPref_1、Pref_2、DiaDist、PrefCode_1、PrefCode_2等等。
基于PCA算法的人脸识别MATLAB源码
AB PLC例程代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!