`
tanglong8848
  • 浏览: 66969 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

网页爬虫抓取URL简单实现

 
阅读更多
package com.ogilvy.sayes.util;

import java.io.InputStream;
import java.net.URL;
import java.util.ArrayList;
import java.util.Hashtable;

/* 
 Description:     爬网页用 
 Author     :     long.tang
 */

public class SearchCrawler {

	public String myGetHttpFile2(String url) {

		String urlSource = url;
		StringBuffer htmlBuffer = new StringBuffer();
		String returnStr = null;
		try {
			InputStream imageSource = new URL(urlSource).openStream();
			int ch;
			while ((ch = imageSource.read()) > -1) {
				htmlBuffer.append((char) ch);
			}
			imageSource.close();
			returnStr = new String(htmlBuffer);
			returnStr = new String(returnStr.getBytes("ISO8859_1"), "GBK");
		} catch (Exception e) {
			System.out.println("error>>>>");
			e.printStackTrace();
		}

		//System.out.println("@@@:" + returnStr);
		if (returnStr != null) {
			return returnStr;
		} else {
			return "nothing";
		}

	}

	public void doit(String content, int depth) throws Exception {
		
		depth--;
		if (depth < 1) {
			//System.out.println("break::::");
			return;
		}

		SearchCrawler search = new SearchCrawler();
		ArrayList list = new ArrayList();
		int j = 0;
		String start = "href=";
		String end = "\"";
		String url = "";
		String type = "http";
		String[] urls;
		while (content.indexOf(start, j) > -1) {

				url = content.substring(content.indexOf(start, j) + 6, content.indexOf(end, content.indexOf(start, j) + 6));//+6 href="
				if (url.indexOf(type) > -1) {
					if (url.indexOf(".css") == -1&&url.indexOf(".ico") == -1&&url.indexOf(".exe") == -1) {
						System.out.println(url);
						
						list.add(url);

						if (list != null && list.size() > 0) {

							for (int k = 0; k < list.size(); k++) {
								doit(search.myGetHttpFile2(String.valueOf(list.get(k))), depth);
						
							}

						}
					}

				}

			
			j = content.indexOf(start, j) + 1;
			
		}

	}

	public static void main(String arg[]) {

		SearchCrawler search = new SearchCrawler();
		try {
			search.doit(search.myGetHttpFile2("http://www.2345.com/"),3);
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}

}

分享到:
评论

相关推荐

    支持抓取javascript渲染的页面的简单实用高效的python网页爬虫抓取模块.zip

    爬虫通常由搜索引擎、数据挖掘工具、监测系统等应用于网络数据抓取的场景。 爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL...

    网络爬虫的设计和实现

    网络爬虫是通过网页的链接地址来寻找网页,从网站某一个页面(设置为主页)开始,读取网页的内容,找到网页中的其它链接地址,然后通过这些链接地址寻找下一个网页,这样一直循环下去,直到这个网站所有的网页都抓取...

    go语言实现的简单爬虫来爬取CSDN博文

    一般是定义一个入口页面,然后一个页面会有其他页面的URL,于是从当前页面获取到这些URL加入到爬虫的抓取队列中,然后进入到新页面后再递归的进行上述的操作,其实说来就跟深度遍历或广度遍历一样。 golang由于其...

    Python爬虫之网页图片抓取的方法

    这段时间一直在学习Python的东西,以前就听说Python爬虫多厉害,正好现在学到这里,跟着小甲鱼的Python视频写了一个爬虫程序,能实现简单的网页图片下载。 二、代码 __author__ = JentZhang import urllib.request ...

    python网页文本爬虫

    高级爬虫技术难度是很高的,要考虑很多,比如连接优化,代理服务器,大数据量下爬取优化,站点爬取规则设计,但是基础爬虫重点只是实现信息抓取保存和处理,爬取规则通常很简单。 以小说网站爬取为例,首先需要掌握...

    Python爬虫抓取指定网页图片代码实例

    以下介绍了两种方法实现抓取指定网页中图片 (1)方法一:使用正则表达式过滤抓到的 html 内容字符串 # 第一个简单的爬取图片的程序 import urllib.request # python自带的爬操作url的库 import re # 正则表达式 # ...

    Python构建网页爬虫原理分析

    python爬虫实战之最简单的网页爬虫教程 网络爬虫是当今最常用的系统之一。最流行的例子是 Google 使用爬虫从所有网站收集信息。除了搜索引擎之外,新闻网站还需要爬虫来聚合数据源。看来,只要你想聚合大量的信息,...

    基于C#.NET的简单网页爬虫,支持异步并发、切换代理、操作Cookie、Gzip加速。.zip

    爬虫通常由搜索引擎、数据挖掘工具、监测系统等应用于网络数据抓取的场景。 爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL...

    Java编写的简单爬虫程序

    一个java编写的简单爬虫程序,可以实现通过Socket保存html网页 去乱码 存储当前页面URL 自动顺序抓取页面

    基于C#实现网络爬虫 C#抓取网页Html

    最近刚完成一个简单的网络爬虫,开始的时候很迷茫,不知道如何入手,后来发现了很多的资料,不过真正能达到我需要,有用的资料–代码很难找。所以我想发这篇文章让一些要做这个功能的朋友少走一些弯路。 首先是抓取...

    基于Redis实现的简单到爆的分布式爬虫.zip

    爬虫通常由搜索引擎、数据挖掘工具、监测系统等应用于网络数据抓取的场景。 爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL...

    简单的闲鱼爬虫.zip

    爬虫通常由搜索引擎、数据挖掘工具、监测系统等应用于网络数据抓取的场景。 爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL...

    简单爬虫.zip

    爬虫通常由搜索引擎、数据挖掘工具、监测系统等应用于网络数据抓取的场景。 爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL...

    requests+lxml爬虫,简单爬虫架构.zip

    爬虫通常由搜索引擎、数据挖掘工具、监测系统等应用于网络数据抓取的场景。 爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL...

    C++网络爬虫项目

    循环,直到“待抓取URL队列”空,这表示爬虫已将所有能够被抓取的网页尽 数抓完,完成一轮完整的抓取过程。 以上所述仅仅是网络爬虫的一般性原理,具体实现过程中还可以有很多优化的 空间,比如将“网页下载”以多...

    微博超级话题爬虫,微博词频统计+情感分析+简单分类,新增肺炎超话爬取数据.zip

    爬虫通常由搜索引擎、数据挖掘工具、监测系统等应用于网络数据抓取的场景。 爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL...

    深度学习模型自动识别验证码,python爬虫库自动管理会话,通过简单易用的API,实现知乎数据的爬取.zip

    爬虫通常由搜索引擎、数据挖掘工具、监测系统等应用于网络数据抓取的场景。 爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL...

    简单的爬虫系统.zip

    爬虫通常由搜索引擎、数据挖掘工具、监测系统等应用于网络数据抓取的场景。 爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL...

    豆瓣简易爬虫+情感分析.zip

    爬虫通常由搜索引擎、数据挖掘工具、监测系统等应用于网络数据抓取的场景。 爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL...

Global site tag (gtag.js) - Google Analytics