用java对固定网址进行解析,获取页面部分内容。

问题描述

比如说我通过地址获取到了网页的html文件,我现在想获取<span class="value" id="sku-discount-price" itemprop="price">6.89</span>  标签之间的6.89这个值,用java该怎么写呢?怎么做才是最合理的,我自己也尝试的写了一点,请各位高手们指教。如果有更好的方案,欢迎分享一下。<div class="inf-pnl-price-detail"> <dl> <dt>Price:</dt> <dd> <div class="price price-highlight"> <del class="original-price">US $ <span class="" id="sku-price">7.66</span> <span class="separator">/</span> <span class="unit">piece</span> </del> </div> </dd> <dt>Discount Price:</dt> <dd> <div class="price price-highlight"> <span class="currency" itemprop="priceCurrency" content="USD">US $</span> <span class="value" id="sku-discount-price" itemprop="price">6.89</span> <span class="separator">/</span><span class="unit"> piece </span> <span class="time-left">(7 days left )</span> </div> </dd> </dl> </div>  我自己尝试写的代码:public class TestUrl {public static void main(String[] args) {Long l1 = System.currentTimeMillis();String string = "http://www.aliexpress.com/item/10pcs-lot-New-arrival-Hot-sale-fashion-hoomia-jonadab-magicpencil-magic-pencil-earphones-in-earfree-shipping/848760252.html";String str3 = "";String str[] = new String[750];String str2 = "";int i = 0;try {URL readSource = new URL(string);BufferedReader input = new BufferedReader(new InputStreamReader(readSource.openStream()));input.skip(15555);while((str2 = input.readLine()) !=null){str[i] = str2;i++;}str3 = str[1]+str[2]+str[3]+str[4]+str[5]+str[6]+str[7];System.out.println("1====================>"+str3);} catch (Exception e) {e.printStackTrace();}String tempStr2 = str3.replaceAll(".*itemprop="price">", "");String tempStr3 = tempStr2.replaceAll("</span>.*", "");System.out.println("tempStr2:"+tempStr3);Long l2 = System.currentTimeMillis();System.out.println("time:"+(l2-l1));}}

解决方案

直接使用jsoup css选择器语法 进行选择
解决方案二:
String content = "你的网页内容"; Pattern p = Pattern.compile("<span[^>]+sku-discount-price[^>]+>([0-9.]+)</span>"); Matcher m = p.matcher(content); if (m.find()) { String str =m.group(1);//你的要的结果 System.out.println(str); }

时间: 2024-08-27 23:42:21

用java对固定网址进行解析,获取页面部分内容。的相关文章

PHP中使用CURL获取页面title例子_php技巧

通过PHP获取页面title内容的实战演示: 范例代码: 复制代码 代码如下: <?php   /*  功能: 取得 URL 页面上的 <title> 内容     参数:$_POST['url']  */      // 设置最长执行的秒数   ini_set ("expect.timeout", 30);   set_time_limit(30);      // 检查 URL   if(!isset($_POST['url']) || $_POST['url']

获取页面中指定内容的php类

功能: 1.获取内容中的url,email,image. 2.替换内容中的url,email,image. url:<a href="url">xxx</a> email:admin@admin.com image:<img src="image"> Grep.class.php <?php /** grep class * Date: 2013-06-15 * Author: fdipzone * Ver: 1.0 * *

软件-java 抓取 网址 下载 图标 版本号

问题描述 java 抓取 网址 下载 图标 版本号 能不能通过一个网站地址获取我要下载的软件的下载地址,软件版本号,和软件的图标 桶过java实现

java读取日志文件,从获取的一段话中提取重要信息

问题描述 java读取日志文件,从获取的一段话中提取重要信息 获取用户名,如infodba:获取操作时间:获取操作,如delete或者已删除:获取被操作的对象,最后面的字段,最好把那个计算机名也获取到 解决方案 通过配置是不可能得到你想要的 必须进行字符串截取 解决方案二: 其实就是那一句话如何断句并把有用的信息提取出来 解决方案三: 以"-"分割啊,得到的数组长度是3的倍数,0是前面的2003,1是中间的信息,2是结果的信息 解决方案四: 这个不用特意的去写:你可以通过配置log4j

java 结合jQuery实现跨域名获取数据的方法_java

一.什么是跨域? 由于浏览器出于安全的考虑,采取了同源策略的限制,使得jQuery无法直接跨域名互相操作对象或数据.例如:a.com 域名下的 a.html页面利用jQuery无法操作b.com 域名下b.html页面的对象或是数据, 并且默认情况下也不能操作test.a.com域名下的 test.html的 对象或是数据 .只要满足下面条件的jQuery都会视为跨域名: 1.主域相同,子域不同,如xxx.aaa.com和yyy.aaa.com 2.域名相同,端口不同,如xxx.aaa.com:

java.util.Scanner应用详解(获取输入)

java.util.Scanner获取输入的整数,长整型,字符串等:  代码如下 复制代码 /package com.color.program.ball;   import java.util.Scanner;   public class ScannerTest {    public static void main(String[] args) {   Scanner s = new Scanner(System.in);   //receive string   String str

ix able-FixTable 固定表头之后,如果通过JS获取页面上控件的值??

问题描述 FixTable 固定表头之后,如果通过JS获取页面上控件的值?? $(function() { FixTable("MyTable",2, $(document.body).width()+10, $(document.body).height() - 50); }); 解决方案 不用jquery选中你的对象就行了,如果FixTable更改过DOM对象结构,需要用开发工具看下修改后的结构,调整你的选择器

java web获取请求体内容

Java Web中如何获取请求体内容呢? 我们知道请求方式分为两种:Get,Post Java代码   /***       * Compatible with GET and POST       *        * @param request       * @return : <code>byte[]</code>       * @throws IOException       */       public static byte[] getRequestQuery

java 断开从连接池中获取的连接,规范的操作是怎样的

问题描述 java断开从连接池中获取的连接,规范的操作是怎样的,ResultSet,PreparedStatement,Connection是否需要依次关闭,若需要,应该怎么做才是高效率,规范,而且不会发生内存泄露.涉及到很多try和catch,不知怎么处理. 解决方案 解决方案二:ResultSet,PreparedStatement,Connection是否需要依次关闭需要应该怎么做才是高效率写一个函数用来关闭,如放在的帮助类JdbcUtil里,如publicstaticvoidreleas