Jsoup爬虫学习--获取网页所有的图片,链接和其他信息,并检查url和文本信息

此例将页面图片和url全部输出,重点不太明确,可根据自己的需要输出和截取;

import org.jsoup.Jsoup;
import org.jsoup.helper.Validate;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements; import java.io.IOException; public class ListLinks {
public static void main(String[] args) throws IOException {
//将url赋值,初始化
String url = "http://news.ycombinator.com/";
print("url is %s...", url);
//获取页面内容
Document doc = Jsoup.connect(url).get();
//将a标签下的href元素取出
Elements links = doc.select("a[href]");
//将含src的元素取出 例如:src="s.gif"
Elements media = doc.select("[src]");
//将link标签下的href元素取出
Elements imports = doc.select("link[href]");
//输出含src的元素的个数
print("\nMedia: (%d)", media.size());
for (Element src : media) {
//将tagname为img标签的取出,并输出
if (src.tagName().equals("img"))
//第一个为tagname,输出的为img标签;第二个为src等于号后面的参数值,为此处为url网址,第三个为图片宽,第四个为图片高,第五个为alt的参数值,此例为空
print(" * %s: <%s> %sx%s (%s)",
src.tagName(), src.attr("abs:src"), src.attr("width"), src.attr("height"),
trim(src.attr("alt"), 20));
else
//若tagname不为img,则仅输出三项内容
print(" * %s: <%s>", src.tagName(), src.attr("abs:src"));
}
//输出含link>href元素的个数
print("\nImports: (%d)", imports.size());
//循环每个link>href元素
for (Element link : imports) {
//第一个为tagname,输出的为link标签;第二个为href等于号后面的参数值,为此处为url网址;第三个为rel等号后面的参数值
print(" * %s <%s> (%s)", link.tagName(),link.attr("abs:href"), link.attr("rel"));
}
//输出含a>href元素的个数
print("\nLinks: (%d)", links.size());
for (Element link : links) {
//第一个为tagname,输出的为a标签;第二个为href等于号后面的参数值,为此处为url网址;第三个为link标签含的文本值,若超过35个字符则,截取前35个字符
print(" * a: <%s> (%s)", link.attr("abs:href"), trim(link.text(), 35));
}
}
//重写print
private static void print(String msg, Object... args) {
System.out.println(String.format(msg, args));
}
//重写trim
private static String trim(String s, int width) {
if (s.length() > width)
return s.substring(0, width-1) + ".";
else
return s;
}
}

此处还用到了java占位符:

int year=2017;
int month=6;
int day=1;</P>
String str=String.format("今天是%d年%d月%d日,祝大家儿童节快乐!!!",
                         year, month, day);

代码中的String.format方法,用来使用占位符拼接字符串数据,具有类型效果的还有用于打印的:
System.out.printf("format string",  Object...args)

其中的 %d 就表示一个十进制整数位置,这个位置会由后面参数补充后组成新的字符串

以下是所有的占位符及简要说明:
%s 字符串
%c 字符
%d 整数(十进制)
%x 整数(十六进制)
%o 整数(八进制)
%f 浮点型(十进制)
%a 浮点型(十六进制)
%e 指数类型9.38e+5
%g 通用浮点类型(f和e类型中较短的)
%n 换行\r\n
%% 百分号%

%tF 日期2017-05-09
%tT 时间08:52:59
%tA 星期一
%tZ 区时CTS
%tz 区时+0800
%tY 年份2017
%ty 年份17
%tm 月份05
%td 日期09
%tH 小时08
%tM 分钟52
%tS 秒钟59
%tL 毫秒999

(java)Jsoup爬虫学习--获取网页所有的图片,链接和其他信息,并检查url和文本信息的更多相关文章

  1. (java)Jsoup爬虫学习--获取智联招聘(老网站)的全国java职位信息,爬取10页

    Jsoup爬虫学习--获取智联招聘(老网站)的全国java职位信息,爬取10页,输出 职位名称*****公司名称*****职位月薪*****工作地点*****发布日期 import java.io.I ...

  2. Python爬虫学习——获取网页

    通过GET请求获取返回的网页,其中加入了User-agent信息,不然会抛出"HTTP Error 403: Forbidden"异常, 因为有些网站为了防止这种没有User-ag ...

  3. 【Python项目】简单爬虫批量获取资源网站的下载链接

    简单爬虫批量获取资源网站的下载链接 项目链接:https://github.com/RealIvyWong/GotDownloadURL 1 由来 自己在收集剧集资源的时候,这些网站的下载链接还要手动 ...

  4. 简单的Java网络爬虫(获取一个网页中的邮箱)

    import java.io.BufferedReader; import java.io.FileNotFoundException; import java.io.FileReader; impo ...

  5. Java 中 利用正则表达式 获取 网页图片

    import java.io.File;import java.io.FileOutputStream;import java.io.InputStream;import java.net.URL;i ...

  6. Java jsoup获取网页中的图片

    获取图片 package com.vfsd.net; import java.io.File; import java.io.FileOutputStream; import java.io.IOEx ...

  7. java爬虫HttpURLConnect获取网页源码

    public abstract class HttpsURLConnection extends HttpURLConnection HttpsURLConnection 扩展 HttpURLConn ...

  8. 爬虫学习--Day4(网页采集器的实现)

    #UA: User-Agent {请求载体的身份标识}#(反爬机制)UA检测:门户网站的服务器回检测对应请求的载体身份标识,如果检测到请求的载体身份为某一款浏览器就说明该请求时一个正常的请求.但是,如 ...

  9. 爬虫学习----获取cookie

    http://blog.csdn.net/samxx8/article/details/21535901 1.获取cookie import urllib import http.cookiejarc ...

随机推荐

  1. mac远程连接linux 服务器桌面by VNC

    为了远程使用Linux服务器,折腾了一个下午.最终看来还是用vnc最简单了. 实验室有两台强劲的Linux服务器用来做研究.之前我一直都是用ssh登到服务器上去码代码,反应速度很快,感觉很不错.但是因 ...

  2. [转帖]腾讯将使用AMD第二代霄龙处理器打造自研服务器:性能提升35%

    腾讯将使用AMD第二代霄龙处理器打造自研服务器:性能提升35% https://news.cnblogs.com/n/647499/ 我司的服务器是不是要少一块蛋糕了.. 作者:万南 今日,AMD 宣 ...

  3. Java开发笔记(一百三十八)JavaFX的箱子

    前面介绍了JavaFX标签控件的用法,其中提到Label文本支持中文字体,那么它到底支持哪些中文字体呢?自然要看当前的操作系统都安装了哪些字体才行,对于中文的Windows系统,默认安装了黑体“Sim ...

  4. STL源码剖析——Iterators与Traits编程#5 __type_traits

    上节给出了iterator_traits以及用到traits机制的部分函数的完整代码,可以看到traits机制能够提取迭代器的特性从而调用不同的函数,实现效率的最大化.显然这么好的机制不应该仅局限于在 ...

  5. T100-----调试程序,快速定位到错误行

    1.r.d 作业编码 2.ctrl+d3.输入    watch g_errparam.code if g_errparam.code='错误编码',   点几次OK,   再直接run程序,会自动跳 ...

  6. Centos7 在线安装开发环境 jdk1.8+mysql+tomcat

    写在最前 刚刚开始接触Linux,并折腾着在服务器上部署自己的项目,当然作为一个后端开发人员,必不可少的东西肯定是 JDK Mysql Tomcat容器 每天记录一天,每天进步一点点~~ 1.更新系统 ...

  7. 使用eslint检查代码质量

    1.安装 全局安装 npm install eslint -g 局部安装 npm install eslint --save 2.初始化一个配置文件 eslint --init 执行后根据项目需要回答 ...

  8. 在 WPF 程序中应用 Windows 10 真?亚克力效果

    原文:在 WPF 程序中应用 Windows 10 真?亚克力效果 从 Windows 10 (1803) 开始,Win32 应用也可以有 API 来实现原生的亚克力效果了.不过相比于 UWP 来说, ...

  9. kubernetes第七章--管理存储资源

  10. SASS系列之:!global VS !deafult

    先脑补两组场景. 场景一: 同事们每天中午都会外出吃饭.通常情况下都会先问,去哪儿吃啊?不知道啊?下楼再说吧.到了楼下好不容易有个人站出来说,既然没人说我可就说了啊,咱们去吃香草香草吧.没人反对就去, ...