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. docker+nginx部署静态网页(html)

    我看了下网上都是部署单个.html页面的实例.所以今天试试多个.html文件的部署. 因为之前docker部署过vue.js打包的项目,所以按上次部署方式部署.结果还真行,只是这次部署的是小滴课堂上的 ...

  2. postman上传文件对参数的contentType类型设置方式

    项目中使用postman模拟上传文件接口时,总是不成功,发现content-type设置不对,设置head的contentType后,还是不行,后来无意中发现文件参数默认的content-type类型 ...

  3. Linux学习-文件基础权限

    文件基本权限 drwxr-xr-x 第一个字符表示文件类型 d:表示是一个目录.-:表示这是一个普通的文件.l: 表示这是一个符号链接文件,实际上它指向另一个文件.b.c:分别表示区块设备和其他的外围 ...

  4. Java基础笔试练习(九)

    1.下面所示的java代码,运行时,会产生()类型的异常 ? int Arry_a[] = new int[10]; System.out.println(Arry_a[10]); A.Arithme ...

  5. flask框架(六)——闪现(get_flashed_message)、请求扩展、中间件(了解)

    message -设置:flash('aaa') -取值:get_flashed_message() -假设在a页面操作出错,跳转到b页面,在b页面显示a页面的错误信息 1 如果要用flash就必须设 ...

  6. jedis参数不当引发的问题总结

    jedis参数不当引发dubbo服务线程池耗尽异常 现象:一个dubbo服务偶发性的出现个别机器甚至整个集群大量报线程池耗尽的问题.一开始对问题的处理比较粗暴,直接增加了10倍的线程数.但是问题依然偶 ...

  7. charles4.0 request和response的显示设置

    点击右上角的设置按钮 点击preferences 切换到viewers,取消勾选Combine request and response,点击保存即可

  8. System.ComponentModel.Win32Exception (0x80004005): 无效的窗口句柄。

    原文:System.ComponentModel.Win32Exception (0x80004005): 无效的窗口句柄. 在 WPF 获取鼠标当前坐标的时候,可能会得到一个异常:System.Co ...

  9. java之hibernate之基于外键的一对一单向关联映射

    这篇讲解基于外键的一对一单向关联映射 1.考察如下信息,人和身份证之间是一个一对一的关系.表的设计 注意:基于外键的一对一关联的表结构和多对一的表结构是一致的,但是,外键是唯一的. 2.类的结构 Pe ...

  10. native function 'Window_sendPlatformMessage' (4 arguments) cannot be found

    https://github.com/pauldemarco/flutter_blue/issues/140 https://github.com/flutter/flutter/issues/168 ...