js333 > 计算机互联网 > 用javascrpt将指定网页保存为Excel的代码,Java用正

原标题:用javascrpt将指定网页保存为Excel的代码,Java用正

浏览次数:129 时间:2019-11-18

Java用正则表达式如何读取网页内容,正则表达式网页内容

学习java的正则表达式,抓取网页并解析HTML部分内容  

package com.xiaofeng.picup;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/** *//**
*
* @抓取页面文章标题及内容(测试) 手动输入网址抓取,可进一步自动抓取整个页面的全部内容
*
*/
public class WebContent ...{
  /** *//**
   * 读取一个网页全部内容
   */
  public String getOneHtml(String htmlurl) throws IOException...{
    URL url;
    String temp;
    StringBuffer sb = new StringBuffer();
    try ...{
      url = new URL(htmlurl);
      BufferedReader in = new BufferedReader(new InputStreamReader(url
          .openStream(), "utf-8"));// 读取网页全部内容
      while ((temp = in.readLine()) != null) ...{
        sb.append(temp);
      }
      in.close();
    }catch(MalformedURLException me)...{
      System.out.println("你输入的URL格式有问题!请仔细输入");
      me.getMessage();
      throw me;
    }catch (IOException e) ...{
      e.printStackTrace();
      throw e;
    }
    return sb.toString();
  }
  /** *//**
   *
   * @param s
   * @return 获得网页标题
   */
  public String getTitle(String s) ...{
    String regex;
    String title = "";
    List<String> list = new ArrayList<String>();
    regex = "<title>.*?</title>";
    Pattern pa = Pattern.compile(regex, Pattern.CANON_EQ);
    Matcher ma = pa.matcher(s);
    while (ma.find()) ...{
      list.add(ma.group());
    }
    for (int i = 0; i < list.size(); i++) ...{
      title = title + list.get(i);
    }
    return outTag(title);
  }
  /** *//**
   *
   * @param s
   * @return 获得链接
   */
  public List<String> getLink(String s) ...{
    String regex;
    List<String> list = new ArrayList<String>();
    regex = "<a[^>]*href=("([^"]*)"|'([^']*)'|([^s>]*))[^>]*>(.*?)</a>";
    Pattern pa = Pattern.compile(regex, Pattern.DOTALL);
    Matcher ma = pa.matcher(s);
    while (ma.find()) ...{
      list.add(ma.group());
    }
    return list;
  }
  /** *//**
   *
   * @param s
   * @return 获得脚本代码
   */
  public List<String> getScript(String s) ...{
    String regex;
    List<String> list = new ArrayList<String>();
    regex = "<script.*?</script>";
    Pattern pa = Pattern.compile(regex, Pattern.DOTALL);
    Matcher ma = pa.matcher(s);
    while (ma.find()) ...{
      list.add(ma.group());
    }
    return list;
  }
  /** *//**
   *
   * @param s
   * @return 获得CSS
   */
  public List<String> getCSS(String s) ...{
    String regex;
    List<String> list = new ArrayList<String>();
    regex = "<style.*?</style>";
    Pattern pa = Pattern.compile(regex, Pattern.DOTALL);
    Matcher ma = pa.matcher(s);
    while (ma.find()) ...{
      list.add(ma.group());
    }
    return list;
  }
  /** *//**
   *
   * @param s
   * @return 去掉标记
   */
  public String outTag(String s) ...{
    return s.replaceAll("<.*?>", "");
  }

学习java的正则表达式,抓取网页并解析HTML部分内容 package com.xiaofeng.picup;import...

学习java的正则表达式,抓取网页并解析HTML部分内容  

点击按钮后即可.

3.URL的含义

您可能感兴趣的文章:

  • JAVA使用爬虫抓取网站网页内容的方法
  • java抓取网页数据获取网页中所有的链接实例分享
  • java正则表达式匹配网页所有网址和链接文字的示例
  • java简单网页抓取的实现方法
  • Java中使用正则表达式获取网页中所有图片的路径
  • java 抓取网页内容实现代码
  • java抓取网页数据示例
  • java实现网页解析示例
  • 用javascrpt将指定网页保存为Excel的代码
  • Java获取任意http网页源代码的方法

使用:利用

7.爬虫框架

package com.xiaofeng.picup;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/** *//**
*
* @抓取页面文章标题及内容(测试) 手动输入网址抓取,可进一步自动抓取整个页面的全部内容
*
*/
public class WebContent ...{
  /** *//**
   * 读取一个网页全部内容
   */
  public String getOneHtml(String htmlurl) throws IOException...{
    URL url;
    String temp;
    StringBuffer sb = new StringBuffer();
    try ...{
      url = new URL(htmlurl);
      BufferedReader in = new BufferedReader(new InputStreamReader(url
          .openStream(), "utf-8"));// 读取网页全部内容
      while ((temp = in.readLine()) != null) ...{
        sb.append(temp);
      }
      in.close();
    }catch(MalformedURLException me)...{
      System.out.println("你输入的URL格式有问题!请仔细输入");
      me.getMessage();
      throw me;
    }catch (IOException e) ...{
      e.printStackTrace();
      throw e;
    }
    return sb.toString();
  }
  /** *//**
   *
   * @param s
   * @return 获得网页标题
   */
  public String getTitle(String s) ...{
    String regex;
    String title = "";
    List<String> list = new ArrayList<String>();
    regex = "<title>.*?</title>";
    Pattern pa = Pattern.compile(regex, Pattern.CANON_EQ);
    Matcher ma = pa.matcher(s);
    while (ma.find()) ...{
      list.add(ma.group());
    }
    for (int i = 0; i < list.size(); i++) ...{
      title = title + list.get(i);
    }
    return outTag(title);
  }
  /** *//**
   *
   * @param s
   * @return 获得链接
   */
  public List<String> getLink(String s) ...{
    String regex;
    List<String> list = new ArrayList<String>();
    regex = "<a[^>]*href=("([^"]*)"|'([^']*)'|([^s>]*))[^>]*>(.*?)</a>";
    Pattern pa = Pattern.compile(regex, Pattern.DOTALL);
    Matcher ma = pa.matcher(s);
    while (ma.find()) ...{
      list.add(ma.group());
    }
    return list;
  }
  /** *//**
   *
   * @param s
   * @return 获得脚本代码
   */
  public List<String> getScript(String s) ...{
    String regex;
    List<String> list = new ArrayList<String>();
    regex = "<script.*?</script>";
    Pattern pa = Pattern.compile(regex, Pattern.DOTALL);
    Matcher ma = pa.matcher(s);
    while (ma.find()) ...{
      list.add(ma.group());
    }
    return list;
  }
  /** *//**
   *
   * @param s
   * @return 获得CSS
   */
  public List<String> getCSS(String s) ...{
    String regex;
    List<String> list = new ArrayList<String>();
    regex = "<style.*?</style>";
    Pattern pa = Pattern.compile(regex, Pattern.DOTALL);
    Matcher ma = pa.matcher(s);
    while (ma.find()) ...{
      list.add(ma.group());
    }
    return list;
  }
  /** *//**
   *
   * @param s
   * @return 去掉标记
   */
  public String outTag(String s) ...{
    return s.replaceAll("<.*?>", "");
  }

要保存的页面内容

爬虫(spider),可以理解为在网络上爬行的一只蜘蛛,爬虫在互联网这张网上爬来爬去地找资源,如果它遇到想要的资源,就会把它抓取下来。至于什么资源是想要的抓取的?这个由你来控制它咯。
概括来说,爬虫就是一种按照一定的规则,自动的抓取万维网信息的程序或者脚本。

您可能感兴趣的文章:

  • JAVA使用爬虫抓取网站网页内容的方法
  • java抓取网页数据获取网页中所有的链接实例分享
  • java正则表达式匹配网页所有网址和链接文字的示例
  • java简单网页抓取的实现方法
  • Java中使用正则表达式获取网页中所有图片的路径
  • java 抓取网页内容实现代码
  • java抓取网页数据示例
  • Java用正则表达式如何读取网页内容
  • java实现网页解析示例
  • Java获取任意http网页源代码的方法

2.浏览网页的过程

[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]

恩,我是在Windows下用的 PyCharm。

———扯了这么多,下节再进入正题好了~

urllib和urllib2库是学习Python爬虫最基本的库,利用这个库我们可以得到网页的内容,并对内容用正则表达式提取分析,得到我们想要的结果。

URL的格式由三部分组成:
①第一部分是协议(或称为服务方式)。
②第二部分是存有该资源的主机IP地址(有时也包括端口号)。
③第三部分是主机资源的具体地址,如目录和文件名等。

爬虫爬取数据时必须要有一个目标的URL才可以获取数据,因此,URL是爬虫获取数据的基本依据,准确理解它的含义对爬虫学习有很大的帮助。

Python正则表达式是一种用来匹配字符串的强有力的武器。它的设计思想是用一种描述性的语言来给字符串定义一个规则,凡是符合规则的字符串,我们就认为它“匹配”了,否则,该字符串就是不合法的。


开始爬虫之前先看看这些来打个底吧~

4 环境的配置

5.Python urllib和urllib2 库的用法

金沙js333娱乐场,在我们浏览网页的时候,看到的东西是怎么来的呢,这个过程其实是这样的:我们输入网址之后,经过DNS服务器,找到服务器主机,向服务器发出一个请求,服务器经过解析之后,返回给用户 HTML、JS、CSS 等文件,浏览器把这些文件渲染解析出来,我们就可以看到形形色色的网页内容了。
因此,我们看到的网页实质是由 HTML 代码构成的,爬虫爬来的便是这些内容了,通过分析和过滤这些 HTML 代码,实现对图片、文字等资源的获取。(这样想来是不是也很简单,也就是获取网页源码再进行分析过滤得到想要的内容就好了。)

URL,即统一资源定位符,也就是我们说的网址,URL是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它。

6.Python 正则表达式

如果基本的爬虫知识都已经掌握了,那就来用一下Python框架吧。我用的是Scrapy框架。这个框架有什么强大的功能呢?下面是它的官方介绍:

1.首先,什么是爬虫呢?

HTML, XML源数据 选择及提取 的内置支持
提供了一系列在spider之间共享的可复用的过滤器(即 Item Loaders),对智能处理爬取数据提供了内置支持。
通过 feed导出 提供了多格式(JSON、CSV、XML),多存储后端(FTP、S3、本地文件系统)的内置支持
提供了media pipeline,可以 自动下载 爬取到的数据中的图片(或者其他资源)。
高扩展性。您可以通过使用 signals ,设计好的API(中间件, extensions, pipelines)来定制实现您的功能。
内置的中间件及扩展为下列功能提供了支持:
cookies and session 处理
HTTP 压缩
HTTP 认证
HTTP 缓存
user-agent模拟
robots.txt
爬取深度限制
针对非英语语系中不标准或者错误的编码声明, 提供了自动检测以及健壮的编码支持。
支持根据模板生成爬虫。在加速爬虫创建的同时,保持在大型项目中的代码更为一致。详细内容请参阅 genspider 命令。
针对多爬虫下性能评估、失败检测,提供了可扩展的 状态收集工具 。
提供 交互式shell终端 , 为您测试XPath表达式,编写和调试爬虫提供了极大的方便
提供 System service, 简化在生产环境的部署及运行
内置 Web service, 使您可以监视及控制您的机器
内置 Telnet终端 ,通过在Scrapy进程中钩入Python终端,使您可以查看并且调试爬虫
Logging 为您在爬取过程中捕捉错误提供了方便
支持 Sitemaps 爬取
具有缓存的DNS解析器

本文由js333发布于计算机互联网,转载请注明出处:用javascrpt将指定网页保存为Excel的代码,Java用正

关键词:

上一篇:存储学习笔记,关于存储控制器的多路径机制

下一篇:ruby面向对象编程,进一步深入Ruby中的类与对象概