- 浏览: 217007 次
- 性别:
- 来自: 湖北->上海
最新评论
-
苹果超人:
我也遇到这个问题,我想在ConfigurationAction ...
杀千刀的PortletPreferences -
flago:
Liferay 的论坛设置的默认显示多少条帖子怎么设置??
liferay中vm中如何调用java类代码 -
ofdata:
遭遇此问题
杀千刀的PortletPreferences -
yaokaiwen99:
大哥求一个简单的flexigrid在liferay中应用的例 ...
Liferay异步提交 -
gaigai511225:
你好 插件环境那个url 具体怎么写 我照您的方式写了出错 ...
Liferay异步提交
package com.taobao.html;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.text.SimpleDateFormat;
import java.util.Calendar;
public class HtmlUtil {
public static String connectURL(String url){
HttpURLConnection url_c = null;
InputStream in = null;
BufferedReader rd = null;
StringBuffer buf = new StringBuffer();
try{
URL url_i = new URL(url);
url_c = (HttpURLConnection)url_i.openConnection();
//url_c.setRequestProperty("User-agent","IE/6.0");
url_c.setRequestProperty("User-Agent","Mozilla/4.0 (compatible; MSIE 6.0; Windows 2000)");
url_c.setRequestProperty("Content-Type","application/x-www-form-urlencoded");
url_c.setRequestProperty("Accept","text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2");
url_c.setRequestProperty("Connection","keep-alive");
url_c.setDoInput(true);
url_c.connect();
in = url_c.getInputStream();
rd = new BufferedReader(new InputStreamReader(in,
"utf-8"));
String line = rd.readLine();
String crlf=System.getProperty("line.separator");
while(line != null){
buf.append(line);
buf.append(crlf);
line = rd.readLine();
}
in.close();
rd.close();
}catch(Exception e){
System.out.println("URL connect fild url is:"+url);
e.printStackTrace();
}finally{
if(url_c != null)
url_c.disconnect();
try{
if(in != null)
in.close();
if(rd != null)
rd.close();
}catch(Exception e){}
}
return buf.toString();
}
/**
* 删除input字符串中的html格式
*
* @param input
* @param length
* @return
*/
public static String splitAndFilterString(String input, int length) {
if (input == null || input.trim().equals("")) {
return "";
}
// 去掉所有html元素,
String str = input.replaceAll("\\&[a-zA-Z]{1,10};", "").replaceAll(
"<[^>]*>", "");
str = str.replaceAll("[(/>)<]", "");
str = str.replaceAll("\\r", "");
str = str.replaceAll("\\n", "");
//根据实际情况来增加
str = spareString(str);
int len = str.length();
if (len <= length) {
return str;
} else {
str = str.substring(0, length);
str += "......";
}
return str;
}
public static String spareString(String str1){
String str = new String();
str = str1;
str = str.replaceAll("(", "");
str = str.replaceAll(")", "");
str = str.replaceAll(":", "");
str = str.replaceAll("-", "");
str = str.replaceAll("《", "");
str = str.replaceAll("》", "");
str = str.replaceAll("~", "");
str = str.replaceAll("=", "");
str = str.replaceAll(" ", "");
str = str.replaceAll("“", "");
str = str.replaceAll("”", "");
str = str.replaceAll("、", "");
str = str.replaceAll("·", "");
//str = str.replaceAll("\\", "");
//str = str.replaceAll("/", "");
//str = str.replaceAll("*", "");
str = str.replaceAll("$", "");
str = str.replaceAll("&", "");
str = str.replaceAll(" ", "");
str = str.replaceAll("\"", "");
//str = str.replaceAll("(", "");
//str = str.replaceAll(")", "");
str = str.replaceAll("<", "");
str = str.replaceAll(">", "");
str = str.replaceAll("-", "");
str = str.replaceAll(":", "");
str = str.replaceAll("=", "");
str = str.replaceAll("~", "");
return str;
}
public static String getNow(){
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
return format.format(calendar.getTime());
}
}
public String getHtml(Book key, boolean isAll){
String title = HtmlUtil.spareString(key.getTitle());
String publish = HtmlUtil.spareString(key.getPublish());
String year = HtmlUtil.spareString(key.getIssueYear());
String name = "";
try{
if(isAll)
name = URLEncoder.encode(title+" "
+ publish + " " + year, "utf-8");
else
name = URLEncoder.encode(title, "utf-8");
}catch(Exception e){
System.out.println("URLEncoder fild name is:"+name);
e.printStackTrace();
}
String url = "http://scholar.google.cn/scholar?hl=zh-CN&lr=&newwindow=1&q=" +
name + "&btnG=%E6%90%9C%E7%B4%A2&lr=";
return HtmlUtil.connectURL(url);
}
这是给老婆写的专门在GOOGLE上查一些图书统计资料的小爬虫,还写过一个根据网站生成淘宝数据的小爬虫,唉!可惜啊,老婆的一个月的热情就没了,浪费我花了一天的时间。
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.text.SimpleDateFormat;
import java.util.Calendar;
public class HtmlUtil {
public static String connectURL(String url){
HttpURLConnection url_c = null;
InputStream in = null;
BufferedReader rd = null;
StringBuffer buf = new StringBuffer();
try{
URL url_i = new URL(url);
url_c = (HttpURLConnection)url_i.openConnection();
//url_c.setRequestProperty("User-agent","IE/6.0");
url_c.setRequestProperty("User-Agent","Mozilla/4.0 (compatible; MSIE 6.0; Windows 2000)");
url_c.setRequestProperty("Content-Type","application/x-www-form-urlencoded");
url_c.setRequestProperty("Accept","text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2");
url_c.setRequestProperty("Connection","keep-alive");
url_c.setDoInput(true);
url_c.connect();
in = url_c.getInputStream();
rd = new BufferedReader(new InputStreamReader(in,
"utf-8"));
String line = rd.readLine();
String crlf=System.getProperty("line.separator");
while(line != null){
buf.append(line);
buf.append(crlf);
line = rd.readLine();
}
in.close();
rd.close();
}catch(Exception e){
System.out.println("URL connect fild url is:"+url);
e.printStackTrace();
}finally{
if(url_c != null)
url_c.disconnect();
try{
if(in != null)
in.close();
if(rd != null)
rd.close();
}catch(Exception e){}
}
return buf.toString();
}
/**
* 删除input字符串中的html格式
*
* @param input
* @param length
* @return
*/
public static String splitAndFilterString(String input, int length) {
if (input == null || input.trim().equals("")) {
return "";
}
// 去掉所有html元素,
String str = input.replaceAll("\\&[a-zA-Z]{1,10};", "").replaceAll(
"<[^>]*>", "");
str = str.replaceAll("[(/>)<]", "");
str = str.replaceAll("\\r", "");
str = str.replaceAll("\\n", "");
//根据实际情况来增加
str = spareString(str);
int len = str.length();
if (len <= length) {
return str;
} else {
str = str.substring(0, length);
str += "......";
}
return str;
}
public static String spareString(String str1){
String str = new String();
str = str1;
str = str.replaceAll("(", "");
str = str.replaceAll(")", "");
str = str.replaceAll(":", "");
str = str.replaceAll("-", "");
str = str.replaceAll("《", "");
str = str.replaceAll("》", "");
str = str.replaceAll("~", "");
str = str.replaceAll("=", "");
str = str.replaceAll(" ", "");
str = str.replaceAll("“", "");
str = str.replaceAll("”", "");
str = str.replaceAll("、", "");
str = str.replaceAll("·", "");
//str = str.replaceAll("\\", "");
//str = str.replaceAll("/", "");
//str = str.replaceAll("*", "");
str = str.replaceAll("$", "");
str = str.replaceAll("&", "");
str = str.replaceAll(" ", "");
str = str.replaceAll("\"", "");
//str = str.replaceAll("(", "");
//str = str.replaceAll(")", "");
str = str.replaceAll("<", "");
str = str.replaceAll(">", "");
str = str.replaceAll("-", "");
str = str.replaceAll(":", "");
str = str.replaceAll("=", "");
str = str.replaceAll("~", "");
return str;
}
public static String getNow(){
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
return format.format(calendar.getTime());
}
}
public String getHtml(Book key, boolean isAll){
String title = HtmlUtil.spareString(key.getTitle());
String publish = HtmlUtil.spareString(key.getPublish());
String year = HtmlUtil.spareString(key.getIssueYear());
String name = "";
try{
if(isAll)
name = URLEncoder.encode(title+" "
+ publish + " " + year, "utf-8");
else
name = URLEncoder.encode(title, "utf-8");
}catch(Exception e){
System.out.println("URLEncoder fild name is:"+name);
e.printStackTrace();
}
String url = "http://scholar.google.cn/scholar?hl=zh-CN&lr=&newwindow=1&q=" +
name + "&btnG=%E6%90%9C%E7%B4%A2&lr=";
return HtmlUtil.connectURL(url);
}
这是给老婆写的专门在GOOGLE上查一些图书统计资料的小爬虫,还写过一个根据网站生成淘宝数据的小爬虫,唉!可惜啊,老婆的一个月的热情就没了,浪费我花了一天的时间。
评论
2 楼
Tyler_Zhou
2008-08-20
我还没有做过服务器端的,也就是在项目中会用到的一点点,还好只是做出给老婆用的,她不会炒我鱿鱼。
1 楼
guile
2008-08-19
不过用Java的URLConnection来做真正的爬虫会死得很惨,这套API根本就不是为了为服务器端使用设计的,有诸多可怕的问题。
发表评论
-
JSR 286 Portlet 的新特性,第 3 部分: Portlet 过滤器和 Portlet 窗口
2010-06-01 10:24 2488在 本系列 的 第 1 部分 简要回顾了JSR 1 ... -
JSR 286 Portlet 的新特性,第 2 部分: 资源服务、事件与共享呈现参数
2010-05-31 18:42 2201在本系列的 第 1 部分 简要回顾了 J ... -
JSR 286 Portlet 的新特性,第 1 部分: Portlet 2.0 新特性介绍
2010-05-31 17:55 2379本系列文章专门针 ... -
Session share
2010-05-14 12:18 0Tomcat Server.xml <Servi ... -
Liferay集群负载均衡配置
2009-10-30 11:14 4882先介绍一下项目系统的环境, Liferay Version: ... -
Liferay 集群部署
2009-10-30 00:00 0十二点了,明天断续 -
Liferay 权限策略
2009-10-29 23:45 3094先上一张大家都很熟悉的图 这张图可以说是整 ... -
Liferay Portlet之间的通信
2009-10-29 19:12 5007从我做Liferay到现在,这个问题一直都存在着,直到最近我才 ... -
Liferay异步提交
2009-10-29 18:06 3396liferay的异步提交其实是非常简单的,他用的是json & ... -
Liferay异步刷新
2009-10-29 18:05 3171Liferay portlet异步刷新,分为两种情况。 ... -
准备开始整理半年来对lifeay新的学习成果
2009-10-29 18:04 1491有半年没有写过liferay的blog了,不过对life ... -
Ajax知识
2009-06-11 17:50 0<SCRIPT LANGUAGE=" ... -
改变Liferay Portal Context(让Liferay不在使用ROOT目录)
2009-05-25 22:46 1825在部署的时候如果遇到我们会遇到让liferay与其他的项目并存 ... -
velocity调用DB持久层,生成actionurl
2009-05-22 17:42 1173#set($hostelCacheService = $ser ... -
liferay 所有版本下载地址
2009-05-21 13:29 3207从1.7.5一直到现在的5.2.3,应有尽有。 htt ... -
liferay ldap配置与相关代码
2008-11-28 11:06 38221.下载LDAP server 并安装, liferay支 ... -
liferay 的加密技术(CRYPT,SHA,SSHA,MD2,MD5)
2008-11-27 15:59 4286package com.liferay.util; impo ... -
liferay openid配置与代码详解
2008-11-21 21:14 28251.liferay的openid的配置很简单的,先去 open ... -
liferay验证码认证
2008-08-27 15:26 2734生成验证码相关: /** * Copyright (c ... -
很烦,想站在阳台上大声的喊
2008-08-20 19:42 1794终于到回家了,好累, ...
相关推荐
本主题围绕“网络爬虫作业练习”,主要涉及Python编程语言和相关的爬虫技术,我们将深入探讨这些知识点。 首先,我们要理解网络爬虫的基本概念。网络爬虫,又称网页抓取或网络蜘蛛,是一种自动遍历互联网并抓取网页...
本书从Python的安装开始,详细讲解了Python从简单程序延伸到Python网络爬虫的全过程。本书从实战出发,根据不同的需求...适合Python网络爬虫初学者、数据分析与挖掘技术初学者,以及高校及培训学校相关专业的师生阅读。
网络爬虫技术 爬虫技术网络爬虫技术 爬虫技术网络爬虫技术 爬虫技术网络爬虫技术 爬虫技术网络爬虫技术 爬虫技术网络爬虫技术 爬虫技术网络爬虫技术 爬虫技术网络爬虫技术 爬虫技术网络爬虫技术 爬虫技术网络爬虫...
解析Python网络爬虫_复习大纲.docx 本文档是关于Python网络爬虫的复习大纲,涵盖了爬虫的基本概念、实现原理、技术、网页...(2)聚焦网络爬虫又称主题网络爬虫,用于选择性地爬取那些与预先定义好的主题相关的页面。
网络爬虫论文答辩,网络爬虫论文答辩课件,网络爬虫论文答辩PPT
文章末尾提到的“宁哥的小站-网络爬虫”是一个提供网络爬虫相关知识学习的网站,可能提供更深入的案例分析、教程和实用工具介绍。 总结而言,本篇入门网络爬虫的精华文章覆盖了网络爬虫的基础知识,介绍了三个核心...
通过研究目标网站爬虫门槛的协商及通过的条件,及反爬虫相关技术及最新发展,设计并实现了一个完整的网络爬虫,最终完成了对目标网站所有文章数据的提取和存储。同时,通过对实验室内部网站的测试实现了绕过反爬虫...
本资源“Python网络爬虫技术_习题答案.rar”看似是一个教学资料,包含了一些图像文件和章节内容,我们可以从这些信息中推测出相关的知识点。 首先,从标题我们可以知道这是一个关于Python网络爬虫技术的习题解答集...
网络爬虫是一种自动获取网页信息的技术,它模拟人类浏览网页的行为,通过编程方式遍历互联网上的页面,收集所需数据。在网络爬虫的论文答辩PPT中,主要涉及以下几个知识点: 1. **网络爬虫的基本原理**:网络爬虫...
在本实习报告中,我们将深入探讨Python网络爬虫的相关知识,并通过实例演示如何使用Python爬虫框架来爬取豆瓣网上的电影数据。 首先,我们要理解爬虫的基本原理。网络爬虫通常分为三个步骤:请求网页、解析网页和...
【网络爬虫源码解析】 网络爬虫是一种自动获取网页信息的程序,它通过模拟人类浏览器的行为,遍历互联网上的信息。在Java编程语言中,实现网络爬虫涉及到多个技术领域,包括HTTP协议理解、HTML解析、数据提取、并发...
在总结以上知识点之后,我们发现《艾伯特Python网络爬虫实战》不仅适合对Python编程有一定基础的人群,同样适合那些希望了解和掌握网络爬虫技术的读者。通过这本书,读者能够了解到网络爬虫从基本原理到实际应用的...
网络大爬虫第1期-交换专题 网络大爬虫第2期-OSPF专题 网络大爬虫第3期-BGP专题 网络大爬虫第4期-QoS专题 网络大爬虫第5期-NAT专题 网络大爬虫第6期-MPLS 网络大爬虫第7期-安全专题 网络大爬虫第8期-HA专题 ...
10. 法律与伦理:在进行网络爬虫开发时,除了技术实现外,还需要注意遵守相关法律法规,了解网络爬虫相关的隐私和版权问题。 本书的内容旨在通过实战案例加深对知识点的理解。读者在学习过程中,应当注重实例的练习...
网络爬虫(又称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。
网络爬虫需求分析 网络爬虫需求分析是指对网络爬虫系统的需求进行分析和定义,以确保系统的开发和实施符合用户的需求和期望。本文档旨在对网络爬虫需求进行详细的分析和定义,从而确保系统的开发和实施符合用户的...
网络爬虫 网络爬虫 网络爬虫网络爬虫网络爬虫网络爬虫网络爬虫网络爬虫网络爬虫网络爬虫网络爬虫网络爬虫网络爬虫
### 网络蜘蛛与网络爬虫:深入解析与应用 #### 一、网络蜘蛛与网络爬虫概览 在互联网技术的飞速发展下,网络蜘蛛(也称网络爬虫)成为数据挖掘与信息提取的重要工具。网络蜘蛛是一种自动化的程序或软件,用于遍历...
Python网络爬虫与数据采集是一门技术课程,主要内容包括网络爬虫的基础知识、网络爬虫请求的基本处理、使用Python相关库进行网络请求、理解HTTP协议及其相关技术,以及如何应对常见的反爬虫策略等。 网络爬虫基础...