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. idea2018.1.1版激活码到2020.7

    N757JE0KCT-eyJsaWNlbnNlSWQiOiJONzU3SkUwS0NUIiwibGljZW5zZWVOYW1lIjoid3UgYW5qdW4iLCJhc3NpZ25lZU5hbWUiO ...

  2. PHP生成短链接方法

    PHP生成短链接方法方法一:新浪提供了长链接转为短链接的API,可以把长链接转为 t.cn/xxx 这种格式的短链接. API: http://api.t.sina.com.cn/short_url/ ...

  3. VMware vSphere6.0 服务器虚拟化部署安装图解(最全,最详细)-搭建的所有步骤

    VMware vSphere6.0 服务器虚拟化部署安装图解 一 .VMware vSphere部署的前期规划要点 1.vSphere的优点 (略) 2如何利用现在的设备架构虚拟化环境 在虚拟化过程中 ...

  4. redis使用bit做只有两种情况的“状态“统计(如是否在线的用户统计)

    1 记录在线用户数(活跃用户)? 比如redis中键a的value数据的二进制码是 0110 0110 0001 它总共有12位,在redis的位操作中,二进制中的第几位称为offset. 我们可以这 ...

  5. AOP实现事务和记录日志

    AOP (Aspect Oriented Programming) 将非功能性需求从功能性需求中剥离出来,解耦并且解决代码复用的问题,比如说权限控制,事务控制,记录操作日志,全局捕获异常等 @Aspe ...

  6. Kafka排队:Apache Kafka作为消息传递系统

    1.目标 在这个Apache Kafka教程中,我们将学习Apache Kafka  Queuing 的概念  .基本上,Kafka中的排队是传统消息传递的模型之一.所以,让我们首先简要介绍Kafka ...

  7. 为什么Apache Kafka如此受欢迎

    1.目标 今天,在这个Kafka教程中,我们将学习所有Kafka功能,如可扩展性,可靠性,耐用性,这些都说明了Kafka如此受欢迎的原因.我们将详细讨论Kafka的每个功能.但在那之前让我们明白什么是 ...

  8. Word 中直引号和弯引号的相互替换

    直引号替换成弯引号 弯引号替换成直引号 未完 ...... 点击访问原文(进入后根据右侧标签,快速定位到本文)

  9. Jenkins+Git+Maven+Tomcat详细安装步骤

    jenkins安装 jenkins的war包安装 以下war包的安装是直接使用war包内嵌的页面访问,也可以将war包放到tomcat的webapps下通过tomcat访问,在下面的tomcat步骤有 ...

  10. Django模板语言中静态文件路径的灵活写法

    如图,我们看到的时html页面中静态文件的路径,其中/static/是settings.py中的设置: 假设我们将settings.py中的/static/改变了,这样的话我们还需要将html中的/s ...