`
2008shucheng
  • 浏览: 45391 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

动态抓取网页,生成静态网页

阅读更多
package com.oop.test;

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;

public class Test1 {
	private static String getStaticPage(String surl) {
		String htmlContent = "";
		try {
			java.io.InputStream inputStream;
			java.net.URL url = new java.net.URL(surl);
			java.net.HttpURLConnection connection = (java.net.HttpURLConnection) url
					.openConnection();
			connection.connect();
			inputStream = connection.getInputStream();
			byte[] bytes = new byte[1024 * 2000];
			int index = 0;
			int count = inputStream.read(bytes, index, 1024 * 2000);
			while (count != -1) {
				index += count;
				count = inputStream.read(bytes, index, 1);
			}
			htmlContent = new String(bytes, "UTF-8");
			connection.disconnect();
		} catch (Exception ex) {
			ex.printStackTrace();
		}
		return htmlContent.trim();
	}

	public static void main(String[] args) {
		try {
			String src = getStaticPage("http://www.google.com");
			File file = new File("d:\\aa.html");
			FileWriter resultFile = new FileWriter(file);
			PrintWriter myFile = new PrintWriter(resultFile);// 写文件
			myFile.println(src);
			resultFile.close();
			myFile.close();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}


什么也不说,我感觉最重要的是分享,只要是有用的东西就应该分享,也许对于一些水平高的人是没有的,但是对于一些水平一般的人还是能够学到一些东西的。很多的人都提出了很多的反对意见和程序的问题意见,可是你们就不能把你们理解是正确的东西分享出来分享一下。
分享到:
评论
21 楼 ak121077313 2011-01-19  
这种毫无营养的东西
public static void downImage(String uri, String fileName) {
try {
URL url = new URL(uri);
File file = new File(fileName);
FileUtils.copyURLToFile(url, file);
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
20 楼 dir_murong 2011-01-18  
类似于搜索引擎? lz能不能加点 解释性的东西
19 楼 tengjavaee 2011-01-18  
题目写错了,明明只能抓取静态内容
18 楼 181054867 2011-01-18  
这篇文章被评为新手帖,没什么有价值的东西!
17 楼 hackang 2011-01-18  
这种文章还上首页,javaeye已经没落到不行了
16 楼 gbfd2012 2011-01-18  
程序有很多漏洞,,,建议这样的文章不该法。。
15 楼 ak121077313 2011-01-18  
幽灵线程 写道
不错,很多大网站的静态页都可以这样生成。收了。


我觉得你是来搞笑的
14 楼 wanghua1985 2011-01-18  
wget是一个从网络上自动下载文件的自由工具,支持通过HTTP、HTTPS、FTP三个最常见的TCP/IP协议下载,并可以使用HTTP代理。
13 楼 guoyunsky 2011-01-18  
mengke 写道
好像只能抓到html代码,别的如:图片等不能抓下来吧


图片、视频等都可以抓取下来。
这是最最基本的一个爬虫程序,能够获取网页内容并下载.
楼主的程序有以下问题:
1)抓取这个动作,本身没有什么动态不动态的.可能楼主要表达的意思是,动态传入URL,然后可以抓取这个URL的内容.
  而且生成静态页面似乎也不合理,你抓取下URL这个内容(都是二进制),没什么静态动态之说吧。
2)楼主这个程序去抓取下javaeye任何一个页面,可能获取到的是:您可能使用了网络爬虫抓取JavaEye网站页面!
3)楼主用byte[] bytes = new byte[1024 * 2000];去保存抓取的内容,近2M.放在内存里。正常情况下,一个页面的大小事8-250K的样子,这是个浪费。而且一旦你碰到视屏之类大于2M的URL,你这个程序估计得内存溢出.




12 楼 jiangjiubo 2011-01-18  
我也用过一次类似方法,是偷取一个动态页面上的部分内容。其实很简单的。
11 楼 幽灵线程 2011-01-18  
不错,很多大网站的静态页都可以这样生成。收了。
10 楼 bulktree 2011-01-18  
是一个IO的例子吗?
9 楼 mengke 2011-01-17  
好像只能抓到html代码,别的如:图片等不能抓下来吧
8 楼 qingsha 2011-01-17  
了解了如何使用HttpURLConnection。
7 楼 janrn 2011-01-17  
如果源网页不是UTF-8的,那你抓下来的中文不就乱码了么.不知道发到这里是何用意
6 楼 maleo 2011-01-17  
zjhlht 写道
请问,这个有什么用啊???

从来没有这方面的需求~~~什么情况下会用到?

有用到的,我们这里的网站需要每天将所有的内容抓取成静态内容的
5 楼 明天的昨天 2011-01-17  
2008shucheng 写道
count = inputStream.read(bytes, index, 1);

为什么 第3个参数 是1。。。 不懂
4 楼 jameswolf 2011-01-17  
最好能保存成 mht 才有用
3 楼 玲cc 2011-01-17  
这帖子。。有点那啥。。
2 楼 1000 2011-01-17  
zjhlht 写道
请问,这个有什么用啊???

从来没有这方面的需求~~~什么情况下会用到?



学习思想。·~~

相关推荐

    asp.net 远程抓取数据生成静态页面Demo

    本教程将重点关注如何利用Asp.NET进行数据抓取并生成静态页面,这在提升网站性能、减轻服务器负担以及搜索引擎优化(SEO)等方面具有显著优势。 首先,我们来理解“数据抓取”这一概念。数据抓取是指从互联网上的...

    把动态网页生成静态页面

    该类是用来将aspx动态页面生成html静态页面,为了让搜索引擎抓取您的网页

    java抓取网页内容--生成静态页面

    在Java编程中,生成静态页面是一种常见的技术,它涉及到网页内容的抓取和存储。这个程序的主要目的是从指定的URL抓取网页内容,并将其保存为一个HTML文件,即静态页面。下面将详细讲解这个过程涉及的关键知识点。 1...

    动态网页如何生成伪静态网页

    动态网页生成伪静态网页是一种常见的优化技术,主要是为了提高网站的搜索引擎优化(SEO)和用户体验。伪静态网页是指外表看起来像静态HTML页面的动态网页,实际上仍然是由服务器端的脚本语言(如PHP、ASP.NET等)...

    ASP动态网页生成静态Html

    ASP动态网页生成静态HTML是一种常见的优化网站性能和SEO(搜索引擎优化)的技术。静态HTML页面相比动态页面有以下优点: 1. **搜索引擎友好**:搜索引擎更善于抓取和索引静态HTML内容,因为它们通常不涉及复杂的...

    动态生成静态HTML

    动态生成静态HTML是一种常见的Web开发技术,主要用于提升网站性能、减轻服务器压力以及提高搜索引擎优化(SEO)效果。C#作为一款强大的.NET平台编程语言,提供了丰富的库和框架来实现这一功能。以下是对这个主题的...

    动态页面生成静态页面实例

    动态页面生成静态页面是一种常见的网站优化技术,它将原本由服务器动态生成的HTML内容转换为预先编译好的静态HTML文件,以提高网站的访问速度和搜索引擎优化(SEO)。本实例将探讨这一技术,并通过提供的文件列表来...

    ASP生成静态HTML网页

    ASP(Active Server Pages)是一种由微软开发的服务器端脚本环境,用于生成动态网页内容。在Web开发领域,ASP常用于构建交互式、数据驱动的网站。然而,考虑到搜索引擎优化(SEO)、页面加载速度和服务器资源消耗等...

    生成静态网页(自动)

    标题"生成静态网页(自动)"暗示了我们讨论的是自动化工具或流程,用于将动态内容转化为静态页面。这样的工具通常能够帮助开发者节省时间,提高效率,因为它们可以自动处理内容更新并生成新的静态文件。 描述中的重复...

    web静态网页生成器

    这样生成的网页可以直接部署到Web服务器上,供用户访问,而无需数据库支持或动态服务器环境。 网页生成器的核心功能包括: 1. **内容管理**:允许用户以结构化的方式输入和组织内容,比如文章、页面、分类等。 2. ...

    ASP.NET生成静态网页

    生成静态页面对于搜索引擎优化(SEO)特别有利,因为搜索引擎爬虫更倾向于抓取和索引静态内容。通过ASP.NET生成静态HTML,可以提高网站在搜索结果中的可见性。 6. **总结** ASP.NET生成静态网页是提高网站性能和...

    asp.net动态生成静态网页

    ASP.NET 动态生成静态网页是一种优化Web应用性能的技术,它通过将原本由服务器动态生成的HTML页面在首次请求时转换为静态HTML文件,并存储在服务器上,供后续请求直接读取,从而提高网站的访问速度和用户体验。...

    看一遍就会明白的动态生成静态页面(C#)

    在Web Forms模型中,我们通常会使用服务器控件和代码-behind文件(C#)来创建动态网页。而要实现静态化,我们需要在用户请求动态页面时,将其内容写入到HTML文件中。 1. **准备工作**:在你的ASP.NET项目中,确保你...

    ASP 生成静态网页(UTF-8)

    总之,ASP生成静态网页(UTF-8)是提高网站性能和国际化的一种有效方法,涉及的关键技术包括动态数据处理、编码转换、文件操作以及URL管理和SEO策略。理解并熟练掌握这些技术,对于提升网站的用户体验和搜索引擎排名...

    网页动态抓取

    静态网页的内容在服务器上是固定的,而动态网页则根据用户输入或特定条件实时生成内容。动态抓取主要针对后者,因为这些页面通常需要与服务器进行交互才能获取数据。 动态抓取的关键在于模拟浏览器的行为,以便...

    织梦cms手机生成静态页插件_织梦cms手机生成静态页插件_

    2. **配置设置**:在插件管理界面,可以设置生成静态页的相关参数,如生成的目录路径、文件命名规则、是否保留原动态链接等。 3. **生成静态页**:根据设置,插件会遍历网站的所有内容,包括文章、产品、栏目等,...

    asp生成静态页面的源码 asp生成

    ASP(Active Server Pages)是一种微软开发的服务器端脚本语言,常用于构建动态网页。在ASP生成静态页面的过程中,开发者可以将原本由服务器处理的动态内容转化为预先编译好的HTML文件,这种做法有许多优势。 首先...

Global site tag (gtag.js) - Google Analytics