`
ssxxjjii
  • 浏览: 948650 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

正则表达式学习 ---- 抓取远程网页并解析HTML

阅读更多

 

  1. import java.util.regex.Matcher;  
  2. import java.util.regex.Pattern;  
  3. import org.apache.commons.httpclient.HttpClient;  
  4. import org.apache.commons.httpclient.HttpStatus;  
  5. import org.apache.commons.httpclient.methods.GetMethod;  
  6.   
  7. public class HttpClientDemo {  
  8.       
  9.     /** 
  10.      *  
  11.      * @param url 
  12.      * @return 
  13.      * @throws Exception 
  14.      */  
  15.     public static String getHTML(String url) throws Exception {  
  16.         HttpClient httpClient = new HttpClient();  
  17.         GetMethod getMethod = new GetMethod(url);  
  18.         int statusCode = httpClient.executeMethod(getMethod);  
  19.         if (statusCode != HttpStatus.SC_OK) {  
  20.             System.err.println("Method failed: " + getMethod.getStatusLine());  
  21.             return null;  
  22.         }  
  23.         // 读取内容  
  24.         byte[] responseBody = getMethod.getResponseBody();  
  25.         getMethod.releaseConnection();  
  26.         return new String(responseBody);  
  27.   
  28.     }  
  29.     /** 
  30.      *  
  31.      * @throws Exception 
  32.      */  
  33.     public static void test(String url) throws Exception{  
  34.           
  35.         String html = getHTML(url);  
  36.         Pattern p = null;  
  37.         Matcher m = null;  
  38.         StringBuffer sb0 = new StringBuffer();  
  39.         // ul正则  
  40.         String regex = "<ul class=\"d2_9\">([\\s\\S]*<li>)<a.*href='(.*)'.*>(.+?)</a> \\[(.*)\\]</li>([\\s].*)";  
  41.         // 链接正则  
  42.         String regexa = "<a.*href='(.*)'.*>(.+?)</a> \\[(.*)\\]";  
  43.         p = Pattern.compile(regex);  
  44.         // m = p.matcher(sb.toString());  
  45.         m = p.matcher(html);  
  46.         int count = 0;  
  47.         // ul字符串  
  48.         while (m.find()) {  
  49.             sb0.append(m.group());  
  50.         }  
  51.         //System.out.println(sb0.toString());  
  52.         p = Pattern.compile(regexa);  
  53.         m = p.matcher(sb0.toString());  
  54.         // 链接地址和标题  
  55.         while (m.find()) {  
  56.             System.out.println("地址:" + m.group(1));  
  57.             System.out.println("标题:" + m.group(2));  
  58.             System.out.println("时间:" + m.group(3));  
  59.             count++;  
  60.         }  
  61.           
  62.         System.out.println("抓取条数:"+count);  
  63.   
  64.     }  
  65.       
  66.     public static void main(String[] args) throws Exception {  
  67.         String url = "http://cpc.people.com.cn/GB/194302/194306/index.html";  
  68.         test(url);  
  69.           
  70.     }  
  71. }  

  • 大小: 23 KB
分享到:
评论

相关推荐

    下载网页源码并用正则表达式提取图片vb

    通过以上步骤,你可以创建一个VB程序,它能够自动下载指定网页的源码,使用正则表达式找出其中的图片链接,并将这些图片下载到本地。在实际应用中,你可能还需要处理一些边缘情况,如错误处理、编码问题,或者考虑...

    php中通过正则表达式下载内容中的远程图片的函数代码

    在PHP开发中,正则表达式经常被用于解析和处理HTML文档中的内容,如自动抓取网页中的图片、链接等资源。 在上述文件的内容中,详细介绍了如何利用PHP的正则表达式来下载网页中的远程图片到本地服务器。这部分代码是...

    远程抓取网页到本地数据库

    ### 远程抓取网页到本地数据库:详细解析与实现 #### 一、项目背景及需求分析 在当今数字化时代,互联网上的数据资源极其丰富,如何有效地从这些资源中提取有价值的信息并进行处理,成为了一个重要的课题。本案例...

    php正则匹配html中带class的div并选取其中内容的方法_.docx

    接着,使用`preg_match_all`函数执行正则表达式并获取所有匹配的结果: ```php if (preg_match_all($regex4, $return, $matches)) { print_r($matches); } else { echo '0'; } ``` `preg_match_all`会返回一个...

    DTcms5.0正则采集插件

    例如,你可以通过设置正则表达式来定位网页中的标题、内容、作者等信息,从而实现精确的数据抓取。 其次,该插件支持扩展参数。这意味着用户可以在采集过程中添加自定义参数,以满足特定场景下的需求。例如,你可以...

    ASP网站远程抓取文档的方法.rar_asp网站_delphi asp_抓取

    在描述中提到的"实现准确抓文",这可能涉及到HTTP请求、HTML解析和正则表达式等技术。以下是对这些知识点的详细解释: 1. **HTTP请求**:HTTP(超文本传输协议)是互联网上应用最广泛的一种网络协议。在ASP中,我们...

    windows 数据采集服务

    - **解析HTML**:使用`HtmlAgilityPack`等库解析HTML,配合正则表达式匹配目标数据。 - **注册服务**:在安装过程中,使用`installutil.exe`工具将服务注册到系统服务管理器。 - **启动和监控**:通过服务管理器...

    网站神器-网页抓取精灵

    "图片抓取"和"页面图片抓取"都指的是该软件能够从网页中捕获和下载图片的能力,这涉及到HTML解析、CSS选择器、正则表达式等技术,以便定位和提取图片链接。"远程图片下载"如前所述,强调了处理非本地资源的能力,...

    用Asp读取网页源代码

    【Asp 读取网页源代码】 在ASP(Active Server Pages)中,读取网页源代码是一项基础且重要...总的来说,ASP读取网页源代码结合正则表达式,可以实现从网络上抓取和处理信息,这对于开发者来说是一项非常实用的技能。

    C#抓取网页数据,彩票数据查询

    3. **正则表达式**:有时,HTML解析不足以准确提取数据,尤其是当数据嵌入在复杂的CSS样式或JavaScript中时。这时,可以使用正则表达式进行字符串匹配,从HTML文本中提取数据。 4. **代理设置**:在描述中提到,...

    初级的用php写的采集程序

    例如,在给定的代码中,`preg_match_all()`函数结合正则表达式用于查找并提取网页中的图片链接。正则表达式可以灵活地定义匹配规则,适应各种网页结构。 **4. 图片采集** 在上述代码中,`getimg()`函数是一个用于...

    网页数据比分抓取源码

    3. **提取数据**:找到比分数据后,通过正则表达式或者XPath/CSS选择器进行提取。 4. **存储数据**:提取的数据通常会被保存到本地文件、数据库或者实时发送到远程服务器进行进一步分析。 在这个Demo中,用户设置的...

    Asp.net 数据采集基类(远程抓取,分解,保存,匹配)

    对于从远程抓取的HTML数据,这通常意味着使用正则表达式、DOM解析器或HTML Agility Pack等工具来解析HTML文档,提取出所需的特定数据元素。例如,从HTML中抽取文本、链接、图像或其他类型的信息。在提供的代码片段中...

    asp如何远程获取网页内容

    解析HTML内容可以借助正则表达式或DOM解析库。 ```vbscript Dim response response = xhr.responseText ``` 4. **错误处理**:在处理远程请求时,需要考虑网络问题和服务器错误。通过检查`status`属性可以得知请求...

    ASP.NET技巧:远程抓取GOOGLE的自动翻译结果

    ### ASP.NET 技巧:远程抓取 Google 的自动翻译结果 #### 概述 本文将详细介绍如何使用 ASP.NET 进行远程抓取 Google 自动翻译服务的结果。此方法主要适用于那些希望集成 Google 翻译功能到自己的应用程序中的...

    PHP抓取网页、解析HTML常用的方法总结

    在开发网站或应用程序时,经常需要抓取外部网页内容或解析HTML文档,而PHP作为一门广泛使用的服务器端脚本语言,提供了多种方式来实现这些需求。本文将重点总结PHP在网页抓取和HTML解析方面常用的方法。 首先,我们...

    基于PHP的电影站爬虫.zip

    3. 正则表达式:正则表达式在解析网页内容时非常有用,可以用来匹配和提取特定模式的数据。PHP中的preg_match_all()函数就是进行正则匹配的利器。 【爬虫实现步骤】 1. 发送HTTP请求:使用file_get_contents()或...

    PHP实例开发源码—股票贴吧爬虫天宇版.zip

    此外,PHP提供了丰富的内置函数库,如file_get_contents用于读取远程文件(网页),preg_match_all用于正则表达式匹配,以及json_encode/decode处理JSON格式的数据。 2. 网络爬虫原理与技术: - HTTP请求:PHP通过...

    php超级无敌酷炫采集器

    3. 在采集器中,正则表达式常用于识别HTML标签、URL、特定文本等,实现网页内容的精确抓取。 二、采集器功能解析 1. 单页面采集:针对单个网页进行数据提取,适用于获取静态信息或特定页面的资料。 2. 多页面采集:...

Global site tag (gtag.js) - Google Analytics