`
Tyler_Zhou
  • 浏览: 217007 次
  • 性别: Icon_minigender_1
  • 来自: 湖北->上海
社区版块
存档分类
最新评论

网络爬虫相关(自已记下来,怕以后忘记)

阅读更多
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上查一些图书统计资料的小爬虫,还写过一个根据网站生成淘宝数据的小爬虫,唉!可惜啊,老婆的一个月的热情就没了,浪费我花了一天的时间。

0
3
分享到:
评论
2 楼 Tyler_Zhou 2008-08-20  
我还没有做过服务器端的,也就是在项目中会用到的一点点,还好只是做出给老婆用的,她不会炒我鱿鱼。
1 楼 guile 2008-08-19  
不过用Java的URLConnection来做真正的爬虫会死得很惨,这套API根本就不是为了为服务器端使用设计的,有诸多可怕的问题。

相关推荐

    网络爬虫作业练习_爬虫_python学习_网络爬虫_python_

    本主题围绕“网络爬虫作业练习”,主要涉及Python编程语言和相关的爬虫技术,我们将深入探讨这些知识点。 首先,我们要理解网络爬虫的基本概念。网络爬虫,又称网页抓取或网络蜘蛛,是一种自动遍历互联网并抓取网页...

    Python网络爬虫实战.pdf

    本书从Python的安装开始,详细讲解了Python从简单程序延伸到Python网络爬虫的全过程。本书从实战出发,根据不同的需求...适合Python网络爬虫初学者、数据分析与挖掘技术初学者,以及高校及培训学校相关专业的师生阅读。

    网络爬虫技术 爬虫技术

    网络爬虫技术 爬虫技术网络爬虫技术 爬虫技术网络爬虫技术 爬虫技术网络爬虫技术 爬虫技术网络爬虫技术 爬虫技术网络爬虫技术 爬虫技术网络爬虫技术 爬虫技术网络爬虫技术 爬虫技术网络爬虫技术 爬虫技术网络爬虫...

    解析Python网络爬虫_复习大纲.docx

    解析Python网络爬虫_复习大纲.docx 本文档是关于Python网络爬虫的复习大纲,涵盖了爬虫的基本概念、实现原理、技术、网页...(2)聚焦网络爬虫又称主题网络爬虫,用于选择性地爬取那些与预先定义好的主题相关的页面。

    网络爬虫论文答辩PPT课件

    网络爬虫论文答辩,网络爬虫论文答辩课件,网络爬虫论文答辩PPT

    Python入门网络爬虫之精华版

    文章末尾提到的“宁哥的小站-网络爬虫”是一个提供网络爬虫相关知识学习的网站,可能提供更深入的案例分析、教程和实用工具介绍。 总结而言,本篇入门网络爬虫的精华文章覆盖了网络爬虫的基础知识,介绍了三个核心...

    基于Python的网络爬虫与反爬虫技术研究.pdf

    通过研究目标网站爬虫门槛的协商及通过的条件,及反爬虫相关技术及最新发展,设计并实现了一个完整的网络爬虫,最终完成了对目标网站所有文章数据的提取和存储。同时,通过对实验室内部网站的测试实现了绕过反爬虫...

    Python网络爬虫技术_习题答案.rar

    本资源“Python网络爬虫技术_习题答案.rar”看似是一个教学资料,包含了一些图像文件和章节内容,我们可以从这些信息中推测出相关的知识点。 首先,从标题我们可以知道这是一个关于Python网络爬虫技术的习题解答集...

    网络爬虫.论文答辩PPT

    网络爬虫是一种自动获取网页信息的技术,它模拟人类浏览网页的行为,通过编程方式遍历互联网上的页面,收集所需数据。在网络爬虫的论文答辩PPT中,主要涉及以下几个知识点: 1. **网络爬虫的基本原理**:网络爬虫...

    Python网络爬虫实习报告.pdf

    在本实习报告中,我们将深入探讨Python网络爬虫的相关知识,并通过实例演示如何使用Python爬虫框架来爬取豆瓣网上的电影数据。 首先,我们要理解爬虫的基本原理。网络爬虫通常分为三个步骤:请求网页、解析网页和...

    网络爬虫~源码

    【网络爬虫源码解析】 网络爬虫是一种自动获取网页信息的程序,它通过模拟人类浏览器的行为,遍历互联网上的信息。在Java编程语言中,实现网络爬虫涉及到多个技术领域,包括HTTP协议理解、HTML解析、数据提取、并发...

    艾伯特Python网络爬虫实战.pdf

    在总结以上知识点之后,我们发现《艾伯特Python网络爬虫实战》不仅适合对Python编程有一定基础的人群,同样适合那些希望了解和掌握网络爬虫技术的读者。通过这本书,读者能够了解到网络爬虫从基本原理到实际应用的...

    H3C网络大爬虫1-12期全集.rar

    网络大爬虫第1期-交换专题 网络大爬虫第2期-OSPF专题 网络大爬虫第3期-BGP专题 网络大爬虫第4期-QoS专题 网络大爬虫第5期-NAT专题 网络大爬虫第6期-MPLS 网络大爬虫第7期-安全专题 网络大爬虫第8期-HA专题 ...

    python 网络爬虫实战

    10. 法律与伦理:在进行网络爬虫开发时,除了技术实现外,还需要注意遵守相关法律法规,了解网络爬虫相关的隐私和版权问题。 本书的内容旨在通过实战案例加深对知识点的理解。读者在学习过程中,应当注重实例的练习...

    2:python网络爬虫权威指南_python网络爬虫权威指南_python爬虫指南_

    网络爬虫(又称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。

    网络爬虫需求分析.docx

    网络爬虫需求分析 网络爬虫需求分析是指对网络爬虫系统的需求进行分析和定义,以确保系统的开发和实施符合用户的需求和期望。本文档旨在对网络爬虫需求进行详细的分析和定义,从而确保系统的开发和实施符合用户的...

    网络爬虫网络爬虫网络爬虫

    网络爬虫 网络爬虫 网络爬虫网络爬虫网络爬虫网络爬虫网络爬虫网络爬虫网络爬虫网络爬虫网络爬虫网络爬虫网络爬虫

    网络蜘蛛及网络爬虫详解

    ### 网络蜘蛛与网络爬虫:深入解析与应用 #### 一、网络蜘蛛与网络爬虫概览 在互联网技术的飞速发展下,网络蜘蛛(也称网络爬虫)成为数据挖掘与信息提取的重要工具。网络蜘蛛是一种自动化的程序或软件,用于遍历...

    Python网络爬虫与数据采集.pdf

    Python网络爬虫与数据采集是一门技术课程,主要内容包括网络爬虫的基础知识、网络爬虫请求的基本处理、使用Python相关库进行网络请求、理解HTTP协议及其相关技术,以及如何应对常见的反爬虫策略等。 网络爬虫基础...

Global site tag (gtag.js) - Google Analytics