`
Luob.
  • 浏览: 1578852 次
  • 来自: 上海
社区版块
存档分类
最新评论

java之 25天 网络爬虫抓取图片(二)

    博客分类:
  • Java
阅读更多
正则表达式练习

import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.TreeSet;

public class RegexTest {

	
	public static void main(String[] args) {
		//test();
		ipSort();
	}
	/**
	 * 需求:对邮件地址进行校验
	 */
	public static void checkMail(){
		String mail="asdd@sina.com";
		String regex="\\w{6,12}@[a-zA-Z0-9]+(\\.[a-zA-Z]+){1,3}";  //较为精确的匹配,
		regex="\\w+@\\w+(\\.\\w+)+";  //相对不太精确的匹配  注册后,发送激活邮件
		
		System.out.println(mail.matches(regex));
	}
	
	/**
	 * 需求:
	 * 将虾类字符串转换成, 我要学编程
	 * 到底用四种功能中的那一个呢,或者哪几个呢?
	 * 思路方式:
	 * 1.如果指向知道该字符串是否对是错,使用匹配.
	 * 2.想要将已有的字符串变成另一个字符串,替换
	 * 3.想要安装指定的方式将字符串变成多个字符串,切割. 获取匹配规则以外的子串
	 * 4.想要拿到符合要求的字符串子串, 获取. 获取符合规则的子串.
	 */
	public static void test(){
		String str="我我....我我...我要....要要.....要要...学学学..学学.编程....程程...程";
		
		/**
		 * 将已有字符串变成一个字符串, 使用 替换功能.
		 * 1.可以先去掉 " ."
		 * 2.在将多个充分度的内容变成单个内容.
		 */
		str=str.replaceAll("\\.+", "");
		System.out.println(str);
		
		str=str.replaceAll("(.)\\1+", "$1");
		System.out.println(str);
		
	}
	
	/**
	 * 192.68.1.254 102.49.23.013 10.10.10.10 2.2.2.2 8.109.90.30
	 * 将IP地址进行地址段顺序的排序.
	 * 还按照字符串自然顺序,只要让他们每一段都是3位即可
	 * 1.按照每一段需要的最少多0进行补齐,那么每一段就会至少保证有3位
	 * 2.将每一段只保留3位,这样,所有的Ip地址都是每一段3位.
	 */
	public static void ipSort(){
		String ip="192.68.1.254 102.49.23.013 10.10.10.10 2.2.2.2 8.109.90.30 127.0.0.1";
		ip=ip.replaceAll("(\\d+)", "00$1");
		System.out.println(ip);
		ip=ip.replaceAll("0*(\\d{3})", "$1");
		System.out.println(ip);
		String[] arr=ip.split(" +");
		//方法一
		//Arrays.sort(arr);
		
		//方法二
		TreeSet<String> ts=new TreeSet<String>();
		for(String s:arr){
			ts.add(s);
		}
		for(String s:ts){
			System.out.println(s.replaceAll("0*(\\d+)", "$1"));
			//System.out.println(s.replaceAll("0*([1-9]\\d*)", "$1"));
		}
		
		//方法三
		List<String> list= Arrays.asList(arr);
		for (String s : list) {
			System.out.println(s);
		}
		Collections.sort(list);
	}
	
	
}


网络爬虫:(抓取 莱伊份网站首页的图片,然后下载保存到本地)
抓取本地文件中的所有邮箱


import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
import java.net.URLEncoder;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * 网页爬虫(蜘蛛)
 * 爬邮箱
 * 抓取 莱伊份 网站首页 的图片 然后保存的本地 C:\ 
 * 采用多线程进行下载 
 */
class downloadPic implements Runnable{
	private String picpath;
	private String path;
	downloadPic(String picpath,String dir){
		this.picpath=picpath;
		this.path=dir;
	}
	public void run(){
		try {
			URL url=new URL(picpath.replaceAll(" ", "%20"));
			URLConnection conn=url.openConnection();
			 //设置请求的路径  
			//conn.setConnectTimeout(5*1000);  
			int index=picpath.lastIndexOf("/");
			int index1=picpath.lastIndexOf("?");
			index1=index1==-1? picpath.length():index1;
			
			File dir=new File(path);
			if(!dir.exists())
				dir.mkdirs();
		
			String filename=path+picpath.substring(index,index1);
			
			BufferedInputStream bis=new BufferedInputStream(conn.getInputStream());
			
			BufferedOutputStream bos=new BufferedOutputStream(new FileOutputStream(new File(filename)));
			
			byte[] buf=new byte[1024];
			int len=0;
			while((len=bis.read(buf))!=-1){
				bos.write(buf, 0, len);
				bos.flush();
			}

			bis.close();
			bos.close();
			
		} catch (Exception e) {
			e.printStackTrace();
		}
		
	}
}

/**
 * 抓取 图片 
 * 抓取 本地文件中 所有 邮箱
 * @author Bin
 *
 */
public class RegexTest2 {

	/**
	 * @param args
	 * @throws IOException 
	 */
	public static void main(String[] args) throws IOException {
		//getMails();
		getMails_1();
	}

	public static void cashPicAndMail() throws IOException{
		
		URL url=new URL("http://www.laiyifen.com/");
		
		URLConnection conn= url.openConnection();
		BufferedReader bufr=new BufferedReader(new InputStreamReader(conn.getInputStream(),"utf-8"));
		
		String line=null;
		String mailReg="\\w+@\\w+(\\.\\w+)+";  //抓取网站中的邮箱正则
		mailReg="<img .*? ?src=\"(http:.*?)\".*?( /)?>"; //抓取图片正则
		
		//http://images3.laiyifen.com/laiyifen/2012/10211/10211_01_s.jpg?1332472469#h
		
		//<img src="http://images.laiyifen.com/themes/laiyifen2/images/wl110.jpg">
		//<img border="0" src="http://images.laiyifen.com/themes/laiyifen2/images/tribe_image01.jpg">
		//<img style="width:80px; height:80px;overflow:hidden;" src="http://images4.laiyifen.com/laiyifen/2012/10211/10211_01_s.jpg?1332472469#h" />
		
		Pattern p=Pattern.compile(mailReg);
		
		int count=0;
		String filedir="c:\\laiyifeng\\";
		while((line=bufr.readLine())!=null){
			//System.out.println(line);
			Matcher m=p.matcher(line);
			while(m.find()){
				String picurl=m.group(1);
				new Thread(new downloadPic(picurl,filedir)).start();
				count++;
			}
		}
		System.out.println("总计:"+count);
		
	}
	
	
	
	/**
	 * 获取指定文档中的邮件地址
	 * 使用个获取功能,Pattern  Matcher
	 * @throws IOException 
	 */
	public static void getMails() throws IOException{
		BufferedReader bufr=new BufferedReader(new FileReader("E:\\mail.txt"));
		String line=null;
		String mailReg="\\w+@\\w+(\\.\\w+)+";
		Pattern p=Pattern.compile(mailReg);
		
		while((line=bufr.readLine())!=null){
			Matcher m=p.matcher(line);
			while(m.find()){
				System.out.println(m.group());
			}
		}
	}
}
0
3
分享到:
评论

相关推荐

    java爬虫抓取图片

    Java爬虫技术是一种用于自动化网页数据抓取的编程方法,尤其在处理图片抓取时,它可以帮助我们批量下载网络上的图像资源。对于新手来说,掌握Java爬虫抓取图片的基本步骤和技巧是十分有益的。 首先,我们需要了解...

    java网络爬虫抓取网页数据

    Java网络爬虫是一种自动化程序,用于从互联网上抓取大量数据。它的工作原理是模拟浏览器发送HTTP请求到服务器,接收响应,并解析返回的HTML或XML文档以提取所需信息。在这个过程中,HttpClient是一个常用的Java库,...

    java爬虫抓取网页数据教程.pdf

    java爬虫抓取网页数据教程.pdf

    Java网络爬虫抓取代理ip

    通过Java网络爬虫爬取指定代理ip网上的ip,利用了jsoup、httpclient技术实现

    java爬虫抓取网页数据教程(20210809124656).pdf

    java爬虫抓取网页数据教程(20210809124656).pdf

    java爬虫抓取城市数据

    java爬虫抓取城市数据,数据抓取后直接持久化到数据库当中。博客地址http://blog.csdn.net/qq_23994787/article/details/78107890 如果没有积分的话,在主页给博主发邮件获取。

    java爬虫,抓取网页图片

    对于初学者来说,理解并实现一个简单的Java爬虫能够帮助他们掌握网络数据抓取的基本原理。在这个过程中,主要涉及以下几个核心知识点: 1. **HTTP协议**:Java爬虫首先需要理解HTTP(超文本传输协议),它是互联网...

    java爬虫抓取网页内容,下载网站图片

    在本场景中,我们将重点讨论如何利用Java编写爬虫来抓取网页内容并下载其中的图片。 首先,我们需要了解网络爬虫的基本原理。网络爬虫通过发送HTTP请求到目标网站,获取返回的HTML文档,然后解析这个文档以提取出...

    简单的java爬虫抓取网页实现代码

    简单Java爬虫,抓取网页内容,让你了解爬虫机制,熟悉网络编程

    简易Java网络爬虫

    【简易Java网络爬虫】是一种基于Java编程语言实现的简单网络数据抓取工具,主要用于从趣配音的web页面上获取信息。在这个项目中,我们将会探讨如何构建一个基础的网络爬虫,涉及到的关键技术包括HTTP请求、HTML解析...

    java爬虫抓取新闻.zip

    Java爬虫技术是一种用于自动化获取网页内容的程序,它能够帮助开发者从互联网上抓取大量信息,例如新闻、数据和图片。在这个“java爬虫抓取新闻.zip”压缩包中,包含了一个名为“爬虫”的可能为源代码的文件以及一个...

    源码-java网络爬虫源码

    源码-java网络爬虫源码 源码-java网络爬虫源码 源码-java网络爬虫源码 源码-java网络爬虫源码 源码-java网络爬虫源码 源码-java网络爬虫源码 源码-java网络爬虫源码 源码-java网络爬虫源码 源码-java网络爬虫源码 ...

    基于java实现网络爬虫

    Java网络爬虫是一种用于自动化收集互联网信息的程序。在Java中实现网络爬虫涉及多个关键知识点,对于初学者和希望深化Java基础的开发者来说,这是一个非常实用的学习项目。以下将详细阐述这些知识点: 1. **Java...

    Java实现爬虫抓取资料示例

    Java实现爬虫抓取资料示例

    java实现响应式布局爬虫技术

    以下将详细介绍Java网络爬虫的基本原理,响应式布局的概念,以及如何结合这两种技术来实现高效的数据抓取和灵活的展示方式。 首先,Java网络爬虫是一种自动化工具,用于从互联网上抓取大量信息。Java语言提供了丰富...

    自己动手写网络爬虫 可以抓取网页 云盘 Java代码 的内容 只要自己修改下配置即可

    网络爬虫是一种自动化程序,用于从互联网上抓取大量数据,包括网页内容、图片、视频等。本项目提供了一个基础的Java实现,帮助你理解网络爬虫的工作原理,并且可以根据自己的需求进行配置来抓取特定的网页和云盘中的...

    基于Java的主题网络爬虫设计与实现

    这篇毕业设计的标题是“基于Java的主题网络爬虫设计与实现”,它涵盖了数据库设计、程序开发以及论文撰写等多个方面。 首先,我们来看数据库部分。`article.sql`可能包含了项目的数据库结构,这通常会包括表的设计...

    基于java和MySql的网络爬虫

    本项目“基于Java和MySQL的网络爬虫”旨在为开发人员、维护人员以及客户提供一个共享的平台,通过网络爬虫技术抓取并处理电影相关数据,如电影榜单、评分、演员信息以及用户评论,从而实现电影信息的快速检索和可视...

    网络爬虫JAVA扩展包

    在Java网络爬虫中,HttpClient是实现网页抓取的基础,它使得开发者能够方便地模拟浏览器行为,与服务器进行交互。HttpClient还支持SSL/TLS协议,可以用于抓取HTTPS网站的内容,增强了爬虫的实用性。 接下来,`...

    Java爬虫汽车之家图片

    Java爬虫是一种使用Java编程语言实现的网络爬虫技术,它主要用于自动抓取互联网上的信息,如网页内容、图片等。在本案例中,项目组利用Java爬虫从汽车之家网站获取了12万张汽车图片,用于训练人工智能的图片识别模型...

Global site tag (gtag.js) - Google Analytics