原文地址:http://webservices.ctocio.com.cn/java/104/9390604.shtml
马萨玛索(http://www.masamaso.com/index.shtml)每天10点都会推出一折商品5件,就是秒购。男装质量还不错,所以就经常去抢,感觉手动太慢了,就写了一个小爬虫程序,让自己去爬,如果是金子页面(免费商品)就会自动打开,我就可以抢到了。和大家分享一下。
思路:
1. 把所有想要的商品的链接读到程序中。
2. 分别打开每一个链接读取源代码
3. 验证是否是金子商品(源代码中含有free_msg字符串)
4. 如果是金子就把该链接用IE打开
源代码:
读链接文件:
import java.io.BufferedReader; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStreamReader; import java.util.LinkedList; import java.util.List; /** * @author Administrator * */ public class FileReader { private String fileName; public FileReader() { } public FileReader(String fileName) { this.fileName = fileName; } /** * 读取链接,返回一个List * @return */ public List getLines() { BufferedReader reader = null; try { reader = new BufferedReader(new InputStreamReader(new FileInputStream(this.fileName))); } catch (FileNotFoundException e) { e.printStackTrace(); } List lines = new LinkedList(); String line = null; try { while ( (line = reader.readLine()) != null) { lines.add(line); } } catch (IOException e) { e.printStackTrace(); } finally { try { reader.close(); } catch (IOException e) { e.printStackTrace(); } } return lines; } } |
URL类:
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.MalformedURLException; import java.net.URL; import java.net.URLConnection; /** * @author Administrator * */ public class Url { private String url; public Url() { } public Url(String url) { this.url = url; } public String getUrl() { return url; } public void setUrl(String url) { this.url = url; } /** * 获得链接 * @return */ public URLConnection getConnection() { URL httpUrl = null; try { httpUrl = new URL(url); } catch (MalformedURLException e) { e.printStackTrace(); } URLConnection conn = null; if(httpUrl != null) { try { conn = httpUrl.openConnection(); } catch (IOException e) { e.printStackTrace(); } } return conn; } /** * 获得链接上的输出流 * @return */ public BufferedReader getReader() { URLConnection conn = getConnection(); BufferedReader br = null; if(conn == null) { return null; } conn.setConnectTimeout(9000); try { conn.connect(); br = new BufferedReader(new InputStreamReader(conn.getInputStream())); } catch (IOException e) { e.printStackTrace(); return null; } return br; } /** * 从输出流中一行一行读取文件,查看是否含有str字符串,有就返回真 * @param str * @return */ public boolean isExist(String str) { BufferedReader bis = getReader(); boolean exist = false; String line = null; try { while ( (line = bis.readLine()) != null) { exist = line.contains(str); if(exist) { break; } } } catch (IOException e) { e.printStackTrace(); } finally { try { bis.close(); } catch (IOException e) { e.printStackTrace(); } } return exist; } } |
Digger类:
import java.io.IOException; import java.util.List; /** * @author Administrator * */ public class Digger extends Thread{ private Url url; public Digger() { super(); } public Digger(Url url) { this.url = url; } /** * main方法,把配置信息(链接)读入程序,并为每一个链接开启一个线程 * @param args * @throws IOException */ public static void main(String[] args) throws IOException { FileReader reader = new FileReader("F:/myworkspace/workspace/diggold/src/url.txt"); List urls = reader.getLines(); for (String string : urls) { Url url = new Url(string); Digger digger = new Digger(url); digger.start(); } // Runtime.getRuntime().exec("C:/Program Files/Internet Explorer/iexplore.exe http://www.masamaso.com/index.shtml"); } /** * 查看该链接是否存在free_msg字段,存在即为金子 用IE打开该链接 */ @Override public void run() { if(url.isExist("free_msg")) { try { Runtime.getRuntime().exec("C:/Program Files/Internet Explorer/iexplore.exe " + url.getUrl()); } catch (IOException e) { e.printStackTrace(); } } System.out.println(url.getUrl() + "END!"); } } |
url.txt配置文件
http://www.masamaso.com/goods.php?id=3128
http://www.masamaso.com/goods.php?id=3132
http://www.masamaso.com/goods.php?id=3120
写的比较简单,但是挺实用,各位看官莫笑话哈。
相关推荐
适合练手、课程设计、毕业设计的Java项目源码:网络爬虫(蜘蛛).rar 适合练手、课程设计、毕业设计的Java项目源码:网络爬虫(蜘蛛).rar 适合练手、课程设计、毕业设计的Java项目源码:网络爬虫(蜘蛛).rar 适合练手、...
Java毕设项目:利用爬虫的题库自动生成系统源码 Java毕设项目:利用爬虫的题库自动生成系统源码 Java毕设项目:利用爬虫的题库自动生成系统源码 Java毕设项目:利用爬虫的题库自动...
爬虫程序 java爬虫程序 java 数据挖掘爬虫程序 java 数据挖掘爬虫程序 java 数据挖掘
Scrapy爬虫框架 笔趣阁小说抓取 知识点:Scrapy爬虫框架使用 Scrapy爬虫框架使用 scrapy爬虫开发的基本步骤 新建项目 (scrapy startproject xxx):新建一个新的爬虫项目 明确目标 (编写items.py):明确你想要抓取...
网络机器人Java编程指南(网页爬虫机器人聚合器)
java实现一个简单的网络爬虫程序,可以抓取网页,并输出网页源代码
java源码:Java网页爬虫 JSpider.zip
基于Java爬虫的驾考小程序源码+项目说明+数据库(答案爬取).zip基于Java爬虫的驾考小程序源码+项目说明+数据库(答案爬取).zip基于Java爬虫的驾考小程序源码+项目说明+数据库(答案爬取).zip基于Java爬虫的驾考小...
完整的Java语言实现的网络爬虫程序,实用性较强,也可以参考编写适合自己的爬虫
这是个完整的java爬虫程序,可以从一个指定的种子url开始以b广度优先的原则趴下相关的网页,保存在硬盘上
Java编程指南(网页爬虫机器人聚合器)
Java编写的模拟网络爬虫的小程序。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
纯Java编写爬虫框架,实现信息抓取, 附详细源码,需要的可以下载学习
基于HtmlCleaner编写第一个JAVA爬虫程序;文章博客URL地址:http://blog.csdn.net/gongbing798930123/article/details/78989572
如何用java编程构建“网络爬虫”.pdf
java源码:网页搜索爬虫 BlueLeech.zip
基于JAVA的网络爬虫程序源代码
Java爬虫 Java爬虫 Java爬虫 Java爬虫 Java爬虫 Java爬虫 Java爬虫 Java爬虫 Java爬虫
一个用java语言编写的网络爬虫程序,有兴趣的可以下载来自己研究研究
爬虫(Web Crawler)是一种自动化程序,用于从互联网上收集信息。其主要功能是访问网页、提取数据并存储,以便后续分析或展示。爬虫通常由搜索引擎、数据挖掘工具、监测系统等应用于网络数据抓取的场景。 爬虫的...