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自带ssh在哪

    打开Finder,前往> 前往文件夹,输入 ~/.ssh 回车就到ssh目录了. 点击Mac顶部菜单-->“苹果”图标-->最近使用的项目-->终端--输入 open ~/.s ...

  2. A+B for Polynomials

    This time, you are supposed to find A+B where A and B are two polynomials. Input Specification: Each ...

  3. VueJS中学习使用Vuex详解

    转载自:https://segmentfault.com/a/1190000015782272,做了部分修改(这里建议不要用所谓的getters,一来多次一举,二来模块化时会产生很不协调的用法) 在S ...

  4. [转帖]WannaCry惊天大发现!疑似朝鲜黑客组织Lazarus所为

    WannaCry惊天大发现!疑似朝鲜黑客组织Lazarus所为 Threatbook2017-05-16共588524人围观 ,发现 17 个不明物体系统安全 https://www.freebuf. ...

  5. mysql5.5免安装版配置教程

    1. 下载免安装版 ,解压缩 2. 配置MYSQL的环境变量 新增系统变量MYSQL_HOME:安装目录 在PATH变量的最后面添加: ;%MYSQL_HOME%\bin(注意前面的:) 3. 打开文 ...

  6. 为了防止页面重新自动加载,可以给a标签设置href="javascript:void(0);"

    <a href="javascript:void(0);"></a> <!--按照格式要求,此处的0不能省略!! 虽然省略看上去也没什么影响.但是当发 ...

  7. COCOeval接口使用

    COCOeval类简介 class COCOeval: # Interface for evaluating detection on the Microsoft COCO dataset. # # ...

  8. java List分组和排序处理

    在一些应用中,需要将List中的对象按某种情况分组或者排序处理.做个小结如下: 1. 如一个List中存放了ProductDoing对象,productDoing对象有rawTypeId 现在要求将r ...

  9. 普通element ui table组件的使用

    1.使用基础的element ui 的table的基础使用 首先,使用前要先引用element库到项目中,可以直接引入element的js和css或者在vue项目下按需加载不同的组件 废话不多说,直接 ...

  10. php操作表格(写)

    一,转载:http://www.thinkphp.cn/extend/832.html 二,转载:http://m.blog.csdn.net/article/details?id=7827038