0 0

java网页抓取 提取网页部分信息 5

http://www.fedex.com/Tracking?clienttype=dotcomreg&ascend_header=1&cntry_code=cn&language=sim&mi=n&tracknumbers=874589732820

在上面网址中最后874589732820为每次抓取要替换的参数

package ups.test;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;

public class Test {

public String getPageContent(String strUrl, String strPostRequest,int maxLength) {


// 读取结果网页
StringBuffer buffer = new StringBuffer();
System.setProperty("sun.net.client.defaultConnectTimeout", "5000");
System.setProperty("sun.net.client.defaultReadTimeout", "5000");
try {
URL newUrl = new URL(strUrl);
HttpURLConnection hConnect = (HttpURLConnection) newUrl.openConnection();
// POST方式的额外数据
if (strPostRequest.length() > 0) {
hConnect.setDoOutput(true);
OutputStreamWriter out = new OutputStreamWriter(hConnect.getOutputStream());
out.write(strPostRequest);
out.flush();
out.close();
}
// 读取内容

BufferedReader rd = new BufferedReader(new InputStreamReader(hConnect.getInputStream(),"utf-8"));
int ch;
for (int length = 0; (ch = rd.read()) > -1 && (maxLength <= 0 || length < maxLength); length++)
buffer.append((char) ch);
String s = buffer.toString();
s.replaceAll("//&[a-zA-Z]{1,10};", "").replaceAll("<[^>]*>", "");
System.out.println(s);

rd.close();
hConnect.disconnect();
return buffer.toString().trim();
} catch (Exception e) {
return "错误:读取网页失败!";
//


}
}



}
package ups.test;

public class Test1 {

public static void main(String[] args) {

String url = "http://www.fedex.com/Tracking?clienttype=dotcomreg&ascend_header=1&cntry_code=cn&language=sim&mi=n&tracknumbers=874589732820";


Test p = new Test();
p.getPageContent(url, "post", 100500);

System.out.print("已经执行!");
}
}
现在能够抓取到网页的所有代码,但需要货件托运历史中里面的信息:日期/时间 活动 地点 详细信息  不知道怎么提取  求指导

3个答案 按时间排序 按投票排序

0 0

采纳的答案

仔细查看该页面的HTML代码,你就会发现 货件托运历史 记录被保存在一个叫 detailInfoObject 的JavaScript对象中,所以不需要特殊的HTML解析器,使用正则即可截取到这个对象,然后用jackson这样的JSON解析器即可反解析到Bean。

解析HTML代码一定要观察代码的构成,才能有效的解析出你要的信息。

var detailInfoObject = {"shipDate":"Jun 16, 2012","emailResults":false,"scans":[{"scanStatus":"已送达","scanLocation":"CANADA, ON","scanTime":"11:36 AM","GMTOffset":"-04:00","showReturnToShipper":false,"scanDate":"Jun 19, 2012"},{"scanStatus":"货件已装车,派送途中","scanLocation":"MISSISSAUGA, ON","scanTime":"9:30 AM","GMTOffset":"-04:00","showReturnToShipper":false,"scanDate":"Jun 19, 2012"},{"scanStatus":"位于当地的FedEx工作地点","scanLocation":"MISSISSAUGA, ON","scanTime":"8:44 AM","GMTOffset":"-04:00","showReturnToShipper":false,"scanDate":"Jun 19, 2012"},{"scanStatus":"国际货物放行 - 进口","scanLocation":"MISSISSAUGA, ON","scanTime":"6:35 AM","GMTOffset":"-04:00","showReturnToShipper":false,"scanDate":"Jun 19, 2012"},{"scanStatus":"位于目的地分拣中心","scanLocation":"MISSISSAUGA, ON","scanTime":"5:27 AM","GMTOffset":"-04:00","showReturnToShipper":false,"scanDate":"Jun 19, 2012"},{"scanStatus":"正在运输","scanLocation":"INDIANAPOLIS, IN","scanTime":"3:55 AM","GMTOffset":"-04:00","showReturnToShipper":false,"scanDate":"Jun 19, 2012"},{"scanStatus":"离开联邦快递工作地点","scanLocation":"INDIANAPOLIS, IN","scanTime":"3:32 AM","GMTOffset":"-04:00","showReturnToShipper":false,"scanDate":"Jun 19, 2012"},{"scanStatus":"到达联邦快递工作地点","scanLocation":"INDIANAPOLIS, IN","scanTime":"2:00 AM","GMTOffset":"-04:00","showReturnToShipper":false,"scanDate":"Jun 19, 2012"},{"scanStatus":"离开联邦快递工作地点","scanLocation":"ANCHORAGE, AK","scanTime":"4:15 PM","GMTOffset":"-08:00","showReturnToShipper":false,"scanDate":"Jun 18, 2012"},{"scanStatus":"到达联邦快递工作地点","scanLocation":"ANCHORAGE, AK","scanTime":"12:06 PM","GMTOffset":"-08:00","showReturnToShipper":false,"scanDate":"Jun 18, 2012"},{"scanStatus":"正在运输","scanLocation":"NARITA-SHI JP","scanTime":"10:38 PM","GMTOffset":"+09:00","showReturnToShipper":false,"scanDate":"Jun 18, 2012"},{"scanStatus":"清关延误 - 进口","scanLocation":"MISSISSAUGA, ON","scanTime":"4:16 AM","GMTOffset":"-04:00","showReturnToShipper":false,"scanDate":"Jun 18, 2012"},{"scanStatus":"正在运输","scanLocation":"SHANGHAI CN","scanTime":"4:58 AM","GMTOffset":"+08:00","showReturnToShipper":false,"scanDate":"Jun 18, 2012"},{"scanStatus":"正在运输","scanLocation":"SHANGHAI CN","scanTime":"12:06 AM","GMTOffset":"+08:00","showReturnToShipper":false,"scanDate":"Jun 18, 2012"},{"scanStatus":"国际货物放行 - 出口","scanLocation":"SHANGHAI CN","scanTime":"11:40 PM","GMTOffset":"+08:00","showReturnToShipper":false,"scanDate":"Jun 17, 2012"},{"scanStatus":"已离开发件地FedEx站点","scanLocation":"SHANGHAI CN","scanTime":"4:40 PM","GMTOffset":"+08:00","showReturnToShipper":false,"scanDate":"Jun 16, 2012"},{"scanStatus":"已取件","scanComments":"在FedEx截件时间之后才收到包裹","scanLocation":"SHANGHAI CN","scanTime":"3:34 PM","GMTOffset":"+08:00","showReturnToShipper":false,"scanDate":"Jun 16, 2012"},{"scanStatus":"托运资讯发送给FedEx ","scanTime":"12:40 AM","GMTOffset":"-05:00","showReturnToShipper":false,"scanDate":"Jun 16, 2012"}],......




2012年7月03日 09:06
0 0

jsoup也可以得到你要的内容。。使用就像jquery差不多

2012年7月03日 09:34
0 0

有现在的parse可以用的,谷歌搜索"java html parser"

可以像CSS选择器一样,选择指定元素
http://jsoup.org/

2012年7月02日 17:10

相关推荐

    java网页抓取数据

    Java网页抓取数据是互联网数据挖掘的一个重要领域,它允许开发者通过编程方式获取网页上的信息,从而实现自动化分析、监控或构建智能应用。在Java中,我们通常使用HTTP客户端库和HTML解析工具来实现这一目标。本文将...

    java网页抓取demo

    Java网页抓取是一种技术,主要用于从互联网上自动提取或获取数据。这个"java网页抓取demo"项目提供了实现这一功能的实例代码。项目中的jar包是实现网页抓取的关键依赖库,包括Apache Commons Logging和HTTP Client。...

    Java网页抓取数据

    Java网页抓取数据是互联网开发中的一个重要技能,它允许开发者从网页中提取所需的信息,如新闻、产品数据或用户评论,以供进一步分析或利用。本主题主要涵盖以下几个关键知识点: 1. **网络请求库**:在Java中,...

    Java实现网页抓取

    在IT行业中,网页抓取是一项基础且重要的技能,它允许我们自动地从互联网上获取大量信息,进行数据分析、搜索引擎优化、市场研究等用途。在这个Java实现网页抓取的项目中,我们将探讨如何利用Java编程语言来抓取网页...

    java网页数据抓取源代码

    java抓取网页数据,主要用于抓取手机号和身份证查询网站的数据。

    java进行网页抓取

    java程序,能进行简单的网页抓取,及数据抓取,里面还有火车采集器的内容

    Java抓取网页数据Demo

    本文将详细讨论如何使用Java语言来抓取网页数据,包括两种主要方法:直接抓取原网页内容和处理网页中的JavaScript返回数据。 首先,让我们探讨**抓取原网页**的方法。在Java中,我们可以使用`java.net.URL`类来建立...

    Java抓取https网页数据

    Java抓取https网页数据,解决peer not authenticated异常。导入eclipse就能运行,带有所用的jar包(commons-httpclient-3.1.jar,commons-logging.jar,httpclient-4.2.5.jar,httpcore-4.2.4.jar)

    java抓取网页数据

    在“java抓取网页数据”这个主题中,我们将深入探讨如何利用Java来抓取并处理互联网上的信息。 首先,我们要了解什么是网络爬虫。网络爬虫(Web Crawler)是自动遍历互联网的程序,通过抓取网页内容并存储在本地,...

    java简单的抓取网页内容的程序

    java简单的抓取网页内容的程序java简单的抓取网页内容的程序java简单的抓取网页内容的程序java简单的抓取网页内容的程序java简单的抓取网页内容的程序java简单的抓取网页内容的程序java简单的抓取网页内容的程序java...

    java简单抓取网页内容

    在Java编程语言中,抓取网页内容是一项常见的任务,尤其对于数据分析、信息提取以及网络爬虫等应用场景。本文将深入探讨如何使用Java实现简单的网页内容抓取,适合初学者入门学习。 首先,我们需要理解网页抓取的...

    java网页抓取Jsoup包全

    Java网页抓取是一个常见的任务,用于从网页上提取结构化数据,例如HTML文档中的文本、链接、图片等信息。在Java领域,Jsoup是一个非常流行的库,它提供了强大的功能来解析、操纵和提取HTML内容。Jsoup包全指的是包含...

    Java抓取网页内容三种方式

    Java 抓取网页内容三种方式 Java 抓取网页内容是指使用 Java 语言从互联网上抓取网页内容的过程。抓取网页内容是数据爬虫和网络爬虫的基础,它广泛应用于数据挖掘、信息检索、机器学习等领域。本文将介绍使用 Java...

    java抓取网页-java工具类

    java抓取网页java工具类java抓取网页java工具类

    基于JAVA技术的网页内容智能抓取.doc

    在信息技术领域,网页内容的抓取是一项重要的技术,它使得我们可以从互联网的海量数据中提取有价值的信息。本文档主要探讨了基于JAVA技术实现网页内容智能抓取的方法、架构以及核心技术和业务流程。 一、架构 该...

    java网络爬虫抓取网页数据

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

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

    本文是一份关于使用Java语言进行网页数据抓取的教程,主要介绍了使用Apache HttpClient这个库来完成网络请求和数据获取的操作。Apache HttpClient是一个支持HTTP协议的客户端工具,被广泛应用于Java爬虫开发中,帮助...

    java抓取任何指定网页的数据

    ### Java抓取任何指定网页的数据 #### 知识点概览 本文主要介绍如何使用Java技术来抓取任何指定网页的数据。重点在于介绍抓取网页数据的方法、解析数据的手段,以及具体实施过程中的关键步骤。 #### 抓取网页数据...

    java利用htmlparser抓取网页数据

    总之,Java利用HTMLParser库可以有效地抓取和解析网页数据,为数据分析、信息监控等任务提供便利。通过不断学习和实践,你可以掌握更多高级技巧,实现更复杂的功能。记得在使用过程中遵守互联网道德,尊重网站的...

    网页抓取例子

    描述部分虽然为空,但我们可以从提供的博文链接(https://guoyiqi.iteye.com/blog/735515)中获取更多信息,它可能包含一个实际的代码示例或者解释了网页抓取的基本概念。 标签“源码”和“工具”暗示我们将讨论与...

Global site tag (gtag.js) - Google Analytics