Java编程技巧:小爬虫程序

简介: 本文介绍Java编程技巧之小爬虫程序的编程方法。     马萨玛索(http://www.masamaso.com/index.shtml)每天10点都会推出一折商品5件,就是秒购。男装质量还不错,所以就经常去抢,感觉手动太慢了,就写了一个小爬虫程序,让自己去爬,如果是金子页面(免费商品)就会自动打开,我就可以抢到了。

本文介绍Java编程技巧之小爬虫程序的编程方法。

 

  马萨玛索(http://www.masamaso.com/index.shtml)每天10点都会推出一折商品5件,就是秒购。男装质量还不错,所以就经常去抢,感觉手动太慢了,就写了一个小爬虫程序,让自己去爬,如果是金子页面(免费商品)就会自动打开,我就可以抢到了。和大家分享一下。

 

  思路:

 

  1. 把所有想要的商品的链接读到程序中。

 

  2. 分别打开每一个链接读取源代码

 

  3. 验证是否是金子商品(源代码中含有free_msg字符串)

 

  4. 如果是金子就把该链接用IE打开

 

  源代码:

 

  读链接文件:

package com.gogler.net;

 

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;

 

publicclassFileReader {

  private String fileName;

 

  public FileReader(){}

 

  public FileReader(StringfileName){

    this.fileName = fileName;

  }

 

  public List<String>getLines(){

    BufferedReaderreader = null;

   

    try{

      reader= newBufferedReader(newInputStreamReader(new FileInputStream(this.fileName)));

     

     

    }catch(FileNotFoundExceptione){

      e.printStackTrace();

    }

    List<String>lines =  new LinkedList();

    Stringline = null;

    try{

      while((line =reader.readLine())!=null){

         lines.add(line);

      }

    }catch(IOException e){

      e.printStackTrace();

    }

    return lines;

  }

}

 

Url类:

 

package com.gogler.net;

 

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

import java.net.MalformedURLException;

import java.net.URL;

import java.net.URLConnection;

 

publicclassUrl {

  Stringurl;

  public Url(){}

  public Url(String url){

    this.url = url;

  }

  public String getUrl() {

    returnurl;

  }

  publicvoid setUrl(String url) {

    this.url = url;

  }

 

  public URLConnectiongetConnection(){

    URLhttpURL = null;

    try{

      httpURL= newURL(this.url);

    }catch(MalformedURLExceptione){

      e.printStackTrace();

    }

    URLConnectionconn =null;

    if(httpURL != null){

      try{

         conn= httpURL.openConnection();

      }catch(IOException e){

         e.printStackTrace();

      }

    }

    return conn;

  }

 

  public BufferedReadergetBuffer(){

    URLConnectionconn = this.getConnection();

    BufferedReaderbr = null;

    if(conn ==null){

      returnnull;

    }

    conn.setConnectTimeout(1000*10);

    try{

      conn.connect();

      br= newBufferedReader(newInputStreamReader(conn.getInputStream()));

    }catch(IOException e){

      e.printStackTrace();

      returnnull;

    }

    return br;

  }

 

  publicboolean isExit(String str){

    BufferedReaderbis = getBuffer();

    boolean exit = false;

    Stringline = null;

    try{

       while((line =bis.readLine())!=null){

          exit =line.contains(str);

          if(exit){

            break;

          }

       }

    }catch(IOException e){

      e.printStackTrace();

    }finally{

       try{

       bis.close();

       }catch(IOException e){

         e.printStackTrace();

      }     

    }

    return exit;

   

   

   

  }

}

 

Digger类:

 

package com.gogler.net;

 

import java.io.IOException;

import java.util.List;

 

publicclassDigger extends Thread{

 

  private Url url;

  public Digger(){

    super();

  }

 

  public Digger(Url url){

    this.url = url;

  }

  /**

   * @param args

   */

  publicstaticvoid main(String[] args) {

    FileReaderreader = newFileReader("D:/allan/craber.txt");

    List<String>urls = reader.getLines();

    for(String s :urls){

      Urlurl = newUrl(s);

      Digger digger = new Digger(url);

      digger.start();

    }

        

  }

  @Override

  publicvoid run(){

    if(url.isExit("配置文件")){

      try{

          Runtime.getRuntime().exec("C:/Program Files/Internet Explorer/iexplore.exe" + url.getUrl());

      }catch(IOException e){

         e.printStackTrace();

      }

    }

   

   

   

  }

 

}

 

 

相关文章
|
15天前
|
数据采集 JSON Java
Java爬虫获取微店快递费用item_fee API接口数据实现
本文介绍如何使用Java开发爬虫程序,通过微店API接口获取商品快递费用(item_fee)数据。主要内容包括:微店API接口的使用方法、Java爬虫技术背景、需求分析和技术选型。具体实现步骤为:发送HTTP请求获取数据、解析JSON格式的响应并提取快递费用信息,最后将结果存储到本地文件中。文中还提供了完整的代码示例,并提醒开发者注意授权令牌、接口频率限制及数据合法性等问题。
|
15天前
|
数据采集 存储 Java
Java爬虫获取微店店铺所有商品API接口设计与实现
本文介绍如何使用Java设计并实现一个爬虫程序,以获取微店店铺的所有商品信息。通过HttpClient发送HTTP请求,Jsoup解析HTML页面,提取商品名称、价格、图片链接等数据,并将其存储到本地文件或数据库中。文中详细描述了爬虫的设计思路、代码实现及注意事项,包括反爬虫机制、数据合法性和性能优化。此方法可帮助商家了解竞争对手,为消费者提供更全面的商品比较。
|
10天前
|
数据采集 算法 Java
如何在Java爬虫中设置动态延迟以避免API限制
如何在Java爬虫中设置动态延迟以避免API限制
|
2月前
|
传感器 安全 算法
消防救援支队消防员单兵装备智能养护舱电机驱动java版程序(二)
本文探讨消防救援中智能养护舱电机驱动的Java程序设计,作为系列文章第二部分。通过自动化和智能化手段,智能养护舱提升了装备维护效率与准确性。文章详细介绍了电机驱动模块的设计与实现,包括硬件选型、PID控制策略、安全保护机制及Java程序架构,确保电机精确控制、稳定性和安全性。未来将优化功能并引入智能算法和物联网技术,进一步提升装备维护智能化水平。
|
2月前
|
IDE Java 开发工具
消防救援支队消防员单兵装备智能养护舱点击驱动java版程序(一)
智能消防作战服架通过电机驱动系统提升消防员作业效率和安全性。本文介绍基于Java的电机驱动程序开发,涵盖硬件准备、软件环境搭建及驱动程序实现。重点包括串口通信配置、电机控制类设计与控制逻辑实现,确保电机高效稳定运行。通过正确配置通信协议和串口参数,并添加异常处理机制,保障系统的安全性和可靠性。
|
2月前
|
数据采集 存储 JavaScript
jsdom爬虫程序中eBay主页内容爬取的异步处理
jsdom爬虫程序中eBay主页内容爬取的异步处理
|
4月前
|
数据采集 存储 Web App开发
Java爬虫:深入解析商品详情的利器
在数字化时代,信息处理能力成为企业竞争的关键。本文探讨如何利用Java编写高效、准确的商品详情爬虫,涵盖爬虫技术概述、Java爬虫优势、开发步骤、法律法规遵守及数据处理分析等内容,助力电商领域市场趋势把握与决策支持。
|
4月前
|
SQL 安全 Java
Java 异常处理:筑牢程序稳定性的 “安全网”
本文深入探讨Java异常处理,涵盖异常的基础分类、处理机制及最佳实践。从`Error`与`Exception`的区分,到`try-catch-finally`和`throws`的运用,再到自定义异常的设计,全面解析如何有效管理程序中的异常情况,提升代码的健壮性和可维护性。通过实例代码,帮助开发者掌握异常处理技巧,确保程序稳定运行。
78 2
|
4月前
|
数据采集 存储 监控
Java爬虫:数据采集的强大工具
在数据驱动的时代,Java爬虫技术凭借其强大的功能和灵活性,成为企业获取市场信息、用户行为及竞争情报的关键工具。本文详细介绍了Java爬虫的工作原理、应用场景、构建方法及其重要性,强调了在合法合规的前提下,如何有效利用Java爬虫技术为企业决策提供支持。
|
4月前
|
IDE Java 编译器
开发 Java 程序一定要安装 JDK 吗
开发Java程序通常需要安装JDK(Java Development Kit),因为它包含了编译、运行和调试Java程序所需的各种工具和环境。不过,某些集成开发环境(IDE)可能内置了JDK,或可使用在线Java编辑器,无需单独安装。
172 2

热门文章

最新文章