用Java写的爬虫程序

这是一个web查找的根本程序,从命令行输入查找条件(开端的URL、处置url的最大数、要查找的字符串),

它就会逐一对Internet上的URL进行实时查找,查找并输出匹配查找条件的页面。 这个程序的原型来自《java编程艺术》,

为了非常好的剖析,站长去掉了其间的GUI有些,并稍作修改以适用jdk1.5。以这个程序为基础,可以写出在互联网上查找

比如图像、邮件、页面下载之类的“爬虫”。

先请看程序运转的进程:

D:\java>javac  SearchCrawler.java(编译)

D:\java>java   SearchCrawler http://www.ceocbs.com/ /zz3zcwbwebhome/index.jsp 20 java

Start searching...

result:

searchString=java

http://lf.yunnanw.cn/ /zz3zcwbwebhome/index.jsp

http://www.lcsyt.com/ /zz3zcwbwebhome/reply.jsp

http://www.minnan888.net/ /zz3zcwbwebhome/learn.jsp

又如:

D:\java>java    SearchCrawler http://www.  20 java

Start searching...

result:

searchString=java

http://sina.com

http://www.vipfuxin.com/ /W/sinaCN/ina class=a2

http://www.qclchina.com/ /W/sinaCN/na class=a8

http://www.tongxinglong.com/ /W/sinaHK/www class=a2

http://www.jinanwuliangye.com/ /W/sinaTW/ class=a8

D:\java>

下面是这个程序的源码

import java.util.*;

import java.net.*;

import java.io.*;

import java.util.regex.*;

// 查找Web爬行者

public class SearchCrawler implements Runnable{

/* disallowListCache缓存robot不允许查找的URL。 Robot协议在Web站点的根目录下设置一个robots.txt文件,

*规则站点上的哪些页面是约束查找的。 查找程序应该在查找进程中跳过这些区域,下面是robots.txt的一个比如:

# robots.txt for http://somehost.com/

User-agent: *

Disallow: /cgi-bin/

Disallow: /registration # /Disallow robots on registration page

Disallow: /login

*/

private HashMap< String,ArrayList< String>> disallowListCache = new HashMap< String,ArrayList< String>>();

ArrayList< String> errorList= new ArrayList< String>();//错误信息

ArrayList< String> result=new ArrayList< String>(); //查找到的结果

String startUrl;//开端查找的起点

int maxUrl;//最大处置的url数

String searchString;//要查找的字符串(英文)

boolean caseSensitive=false;//是不是区别大小写

boolean limitHost=false;//是不是在约束的主机内查找

public SearchCrawler(String startUrl,int maxUrl,String searchString){

this.startUrl=startUrl;

this.maxUrl=maxUrl;

this.searchString=searchString;

}

用Java写的爬虫程序,布布扣,bubuko.com

时间: 2024-10-13 03:23:50

用Java写的爬虫程序的相关文章

Java写的爬虫的基本程序

这是一个web搜索的基本程序,从命令行输入搜索条件(起始的URL.处理url的最大数.要搜索的字符串),它就会逐个对Internet上的URL进行实时搜索,查找并输出匹配搜索条件的页面. 这个程序的原型来自<java编程艺术>,为了更好的分析,站长去掉了其中的GUI部分,并稍作修改以适用jdk1.5.以这个程序为基础,可以写出在互联网上搜索诸如图像.邮件.网页下载之类的“爬虫”.先请看程序运行的过程: D:\java>javac  SearchCrawler.java(编译) D:\ja

网络爬虫作业代码代写代实现、代做爬虫程序

网络爬虫作业代码代写代实现.代做爬虫程序任务二.网络爬虫实现 一.任务描述编写大学排名爬虫程序,从"最好大学网"获取"软科中国最好大学排名"2016.2017.2018年的国内大学排名数据,并将它们输出出来.2016年中国最好大学排名网址目的1.学习运用requests库编写基本URL访问过程2.学习运用beautifulsoup4库解析和处理HTML3.掌握编写网络爬虫的基本方法二.任务分析(必须有,主要分析任务需求,完成任务的思路与方法,采用的技术等,如爬虫的任

Python写的网络爬虫程序(很简单)

Python写的网络爬虫程序(很简单) 这是我的一位同学传给我的一个小的网页爬虫程序,觉得挺有意思的,和大家分享一下.不过有一点需要注意,要用python2.3,如果用python3.4会有些问题出现. python程序如下: import re,urllib strTxt="" x=1 ff=open("wangzhi.txt","r") for line in ff.readlines(): f=open(str(x)+".txt&

零基础写Java知乎爬虫之进阶篇

说到爬虫,使用Java本身自带的URLConnection可以实现一些基本的抓取页面的功能,但是对于一些比较高级的功能,比如重定向的处理,HTML标记的去除,仅仅使用URLConnection还是不够的. 在这里我们可以使用HttpClient这个第三方jar包. 接下来我们使用HttpClient简单的写一个爬去百度的Demo: 1 import java.io.FileOutputStream; 2 import java.io.InputStream; 3 import java.io.O

Java写的抓取任意网页中email地址的小程序

/* * 从网页中抓取邮箱地址 * 正则表达式:java.util.regex.Pattern * 1.定义好邮箱的正则表达式 * 2.对正则表达式预编译 * 3.对正则和网页中的邮箱格式进行匹配 * 4.找到匹配结果 * 5.通过网络程序,打通机器和互联网的一个网站的连接 */ import java.net.*; import java.util.regex.*; import java.io.*; public class EmailAddressFetch { public static

[Java] 通过控制台写一个html程序,并保存

package test.stream; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; /** * 通过控制台写一个html程序,并输出 * @author Frost.Yen * @E-

写一段程序,求1+2*2+3*3+n*n的值 Java

public static void main(String[] args) { // 1*1+2*2+3*3+n*n int n = 40; // 1 5 14 30 55 // 1 2 3 4 5 // 方式一 int c = 0; for (int i = 1; i <= n; i++) { int c1 = count(i); c = (c1 + i * i); } System.out.println(c); // 方式二 c = 0; c = n * (n + 1) * (2 * n

终于解决了用JAVA写窗口程序在不同的windows界面下的显示保持一致。

好像是两三年前的时候发现这个问题. 由于在windows经典界面与windows xp界面下,窗口的标题栏的高度是不一样的. 所以我们在用Java写GUI程序的时候,会遇到一个问题. 当我把一个JFrame显式的设为setSize(300,200);并且这个Container的Layout是null的时候,在windows经典界面和windows xp界面显示的时候是有差别的.因为windows xp界面下的标题栏比windows经典界面下的标题栏高了7个象素. 今天我终于找到了一个办法,可以不

五:用JAVA写一个阿里云VPC Open API调用程序

用JAVA写一个阿里云VPC Open API调用程序 摘要:用JAVA拼出来Open API的URL 引言 VPC提供了丰富的API接口,让网络工程是可以通过API调用的方式管理网络资源.用程序和软件管理自动化管理网络资源是一件显著提升运维效率和网络生产力的事情.产品经理教你写代码系列文章的目标是不懂代码的网络工程师能一步一步的学会用API管理网络. 另外通过文章标题大家也可以看出来,产品经理教你写代码肯定是一个业余班,里面的代码很多写的都不规范,可能也有很多Bug.专业选手可以参考的有限,请