使用Jsoup抓取网站上的图片、链接

以 http://www.zgfjqw.roboo.com/ 中国风景区网为例,我们想要抓取首页的所有图片。

使用Jsoup可以轻松实现。

代码及注释如下:

 1 package test;
 2 import java.io.*;
 3 import java.net.URL;
 4 import java.io.IOException;
 5 import org.jsoup.Jsoup;
 6 import org.jsoup.nodes.Document;
 7 import org.jsoup.nodes.Element;
 8 import org.jsoup.select.Elements;
 9
10 public class DownloadImages
11 {
12     public static void main(String[] args) throws IOException
13     {
14         //目标网站
15         String url = "http://www.zgfjqw.roboo.com/";
16         //获取到的图片的存储位置,这里采用的是相对路径,存储到项目中的img文件夹下
17         String path = "img";
18         Document doc = Jsoup.connect(url).timeout(100000).get();
19         //获取所有图像元素
20         Elements results = doc.getElementsByTag("img");
21         for(Element e : results)
22         {
23             //获取图像的url
24             String src = e.absUrl("src");
25             //存储到本地的函数
26             storeImg(src, path);
27         }
28         System.out.println("运行结束");
29     }
30
31     //从文件的url获得其文件名,比如http://www.zgfjqw.roboo.com/a/b/c.gif转化为c.gif
32     private static String getName(String src)
33     {
34         int index = src.lastIndexOf(‘/‘);
35         return src.substring(index);
36     }
37
38     //将src存储到path中
39     private static void storeImg(String src, String path) throws IOException
40     {
41         String name = getName(src);
42         URL url = new URL(src);
43         InputStream in = url.openStream();
44         OutputStream out = new BufferedOutputStream(new FileOutputStream(path + name));
45         for(int r;(r = in.read()) != -1; )
46         {
47             out.write(r);
48         }
49         in.close();
50         out.close();
51     }
52 }

以 http://www.cnblogs.com/huoxiayu/ 我的博客为例,我们想要抓取该页面的所有链接。

 1 package test;
 2 import java.io.IOException;
 3 import org.jsoup.Jsoup;
 4 import org.jsoup.nodes.Document;
 5 import org.jsoup.nodes.Element;
 6 import org.jsoup.select.Elements;
 7
 8 public class ExtractLinks
 9 {
10     public static void main(String[] args) throws IOException
11     {
12         String url = "http://www.cnblogs.com/huoxiayu/";
13         Document doc = Jsoup.connect(url).get();
14         Elements results = doc.select("a[href]");
15         System.out.println("Total " + results.size() + " links");
16         for(Element e : results)
17         {
18             String name = e.text();
19             String href = e.attr("abs:href");
20             System.out.println(name + " : " + href);
21         }
22         System.out.println("运行结束");
23     }
24 }
时间: 2024-08-12 11:16:01

使用Jsoup抓取网站上的图片、链接的相关文章

.NET抓取数据范例 抓取页面上所有的链接

原文发布时间为:2009-11-15 -- 来源于本人的百度文章 [由搬家工具导入] .NET抓取数据范例 抓取页面上所有的链接 前台: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> <!DOCTYPE html PUBLIC "-//W3C//DTD X

java中用jsoup抓取网页源码,并批量下载图片

一.导入jsoup的核心jar包jsoup-xxx.jar jar包下载地址:jsoup-1.8.2.jar 中文API地址:http://www.open-open.com/jsoup/parsing-a-document.htm 二.java中用jsoup抓取网页源码,并批量下载图片 package com.dgh.test; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; i

jsoup抓取网页+详细讲解

jsoup抓取网页+详细讲解 Java 程序在解析 HTML 文档时,相信大家都接触过 htmlparser 这个开源项目,我曾经在 IBM DW 上发表过两篇关于 htmlparser 的文章,分别是:从 HTML 中攫取你所需的信息和 扩展 HTMLParser 对自定义标签的处理能力.但现在我已经不再使用 htmlparser 了,原因是 htmlparser 很少更新,但最重要的是有了 jsoup . jsoup 是一款 Java 的 HTML 解析器,可直接解析某个 URL 地址.HT

剑走偏锋,robots.txt快速抓取网站的小窍门

在我抓取网站遇到瓶颈,想剑走偏锋去解决时,常常会先去看下该网站的robots.txt文件,有时会给你打开另一扇抓取之门. 写爬虫有很多苦恼的事情,比如: 1.访问频次太高被限制: 2.如何大量发现该网站的URL: 3.如何抓取一个网站新产生的URL,等等: 这些问题都困扰着爬虫选手,如果有大量离散IP和账号,这些都不是问题,但是绝大部分公司都不具备这个条件的. 我们在工作中写的爬虫大多是一次性和临时性的任务,需要你快速完成工作就好,当遇到上面情况,试着看下robots.txt文件. 举个栗子:

PHP curl模拟浏览器抓取网站信息

curl是一个利用URL语法在命令行方式下工作的文件传输工具. 官方解释 curl是一个利用URL语法在命令行方式下工作的文件传输工具.curl是一个利用URL语法在命令行方式下工作的文件传输工具.它支持很多协议:FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE 以及 LDAP.curl同样支持HTTPS认证,HTTP POST方法, HTTP PUT方法, FTP上传, kerberos认证, HTTP上传, 代理服务器, cookies,

抓取网站数据不再是难事了,Fizzler(So Easy)全能搞定

首先从标题说起,为啥说抓取网站数据不再难(其实抓取网站数据有一定难度),SO EASY!!!使用Fizzler全搞定,我相信大多数人或公司应该都有抓取别人网站数据的经历,比如说我们博客园每次发表完文章都会被其他网站给抓取去了,不信你们看看就知道了.还有人抓取别人网站上的邮箱.电话号码.QQ等等有用信息,这些信息抓取下来肯定可以卖钱或者干其他事情,我们每天都会时不时接到垃圾短信或邮件,可能就这么回事了,有同感吧,O(∩_∩)O哈哈~. 本人前段时间了写了两个程序,一个程序是抓取某彩票网站的数据(双

Fizzler(So Easy)关于抓取网站数据,不再困难

首先从标题说起,为啥说抓取网站数据不再难(其实抓取网站数据有一定难度),SO EASY!!!使用Fizzler全搞定,我相信大多数人或公司应该都有抓取别人网站数据的经历,比如说我们博客园每次发表完文章都会被其他网站给抓取去了,不信你们看看就知道了.还有人抓取别人网站上的邮箱.电话号码.QQ等等有用信息,这些信息抓取下来肯定可以卖钱或者干其他事情,我们每天都会时不时接到垃圾短信或邮件,可能就这么回事了,有同感吧,O(∩_∩)O哈哈~. 本人前段时间了写了两个程序,一个程序是抓取某彩票网站的数据(双

Python抓取网页中的图片到本地

今天在网上找了个从网页中通过图片URL,抓取图片并保存到本地的例子: 1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 4 # Author: xixihuang 5 # Date : 2016/08/28 10:12 AM 6 # Desc: 抓取网页,获取图片URL,抓取图片内容并保存到本地. 7 8 import os 9 import uuid 10 import urllib2 11 import cookielib 12 '''获取

Python3抓取百度贴吧图片

我抓取的地址是http://tieba.baidu.com/p/3125473879?pn=2,这个帖子共有82页左右,下面的代码主要抓取82页的所有图片,具体代码如下: """抓取百度贴吧图片""" #导入模块 import re import urllib from urllib.request import urlopen,urlretrieve #获取抓取页面的源代码 def getHtml(url):     page = urlope