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

抓取网页内容

    博客分类:
  • Java
 
阅读更多

通过JAVA的API可以顺利的抓取网络上的大部分指定的网页内容,现与大家分享一下这方法理解与心得。最简单的一种抓取方法就是:

Java代码
  1. URL url = new URL(myurl);  
  2.   
  3. BufferedReader br = new BufferedReader(newInputStreamReader(url.openStream()));  
  4.   
  5. String s = "";  
  6.   
  7. StringBuffer sb = new StringBuffer("");  
  8.   
  9. while ((s = br.readLine()) != null) {  
  10.   
  11. i++;  
  12.   
  13. sb.append(s+"\r\n");  
  14.   
  15. }  
URL url = new URL(myurl);  BufferedReader br = new BufferedReader(newInputStreamReader(url.openStream()));  String s = "";  StringBuffer sb = new StringBuffer("");  while ((s = br.readLine()) != null) {  i++;  sb.append(s+"\r\n");  }

这种方法抓取一般的网页应该没有问题,但当有些网页中存在一些嵌套的redirect连接时,它就会报Server redirected too many times这样的错误,这是因为此网页内部又有一些代码是转向其它网页的,循环过多导致程序出错。如果只想抓取本URL中的网页内容,而不愿意让它有其它 的网页跳转,可以用以下的代码。

 

Java代码
  1. URL urlmy = new URL(myurl);  
  2.   
  3. HttpURLConnection con = (HttpURLConnection) urlmy.openConnection();  
  4.   
  5. con.setFollowRedirects(true);  
  6.   
  7. con.setInstanceFollowRedirects(false);  
  8.   
  9. con.connect();  
  10.   
  11. BufferedReader br = new BufferedReader(new InputStreamReader(con.getInputStream(),"UTF-8"));  
  12.   
  13. String s = "";  
  14.   
  15. StringBuffer sb = new StringBuffer("");  
  16.   
  17. while ((s = br.readLine()) != null) {  
  18.   
  19. sb.append(s+"\r\n");  
  20.   
  21. }  
URL urlmy = new URL(myurl);  HttpURLConnection con = (HttpURLConnection) urlmy.openConnection();  con.setFollowRedirects(true);  con.setInstanceFollowRedirects(false);  con.connect();  BufferedReader br = new BufferedReader(new InputStreamReader(con.getInputStream(),"UTF-8"));  String s = "";  StringBuffer sb = new StringBuffer("");  while ((s = br.readLine()) != null) {  sb.append(s+"\r\n");  }

这样的话,抓取的时候程序就不会跳换其它页面去抓取其它的内容了,这就达到我们的目的了。

如果是我们是处于内部网的话,还需要专门给它加上代理, Java以特殊的系统属性为代理服务器提供支持,只要在上面的程序加上以下程序就可以了。

 

Java代码
  1. System.getProperties().setProperty( "http.proxyHost", proxyName );  
  2.   
  3. System.getProperties().setProperty( "http.proxyPort", port );  
System.getProperties().setProperty( "http.proxyHost", proxyName );  System.getProperties().setProperty( "http.proxyPort", port );

这样的话就可以实现处于内部网中而向互联网抓取自己想要的东西了。

上面的程序抓取回来的全部内容都存放在sb这个字符串,我们就可以通过正则表达式对它进行分析,提取出自己想要的具体的内容,为我所用,呵呵,这是多么美妙的一件事情啊!!

分享到:
评论

相关推荐

    抓取网站内容,获取网站内容,读取网站所有内容,抓取网页内容

    在IT领域,网络爬虫(Web Crawler)是一种常见的技术,用于自动地抓取网站内容。这个小例子可能是一个简单的Python爬虫程序,用于演示如何从网页中提取数据。下面,我们将深入探讨这些标签所涉及的关键知识点: 1. ...

    JAVA通过url获取网页内容

    在网页抓取程序中,需要获取网页内容以存储到数据库中。在 web 服务中,需要获取网页内容以提供给用户。 五、获取网页内容的注意事项 在获取网页内容时,需要注意以下几点: * 需要检查 URL 是否正确,以免出现...

    抓取网站内容

    网站内容抓取,也称为网页抓取或网络爬虫,是一种自动提取网页数据的技术。它在互联网上广泛应用于搜索引擎优化、数据分析、市场研究、新闻监控等领域。本篇将深入探讨这个主题,帮助你理解如何抓取网站内容以及相关...

    c#多线程抓取网页内容

    ### C#多线程网页内容抓取技术解析 #### 概述 在现代互联网应用开发中,网页抓取是一项常见的需求,特别是在数据挖掘、搜索引擎等领域。传统的单线程抓取方式往往因效率低下而不适用于大规模的数据采集场景。本文...

    java简单抓取网页内容

    确保在尝试获取网页内容时加入适当的异常处理代码。 4. **异步与多线程**: 对于大量网页抓取,考虑使用异步或多线程以提高效率。Java的`CompletableFuture`或`ExecutorService`可以帮助实现这一点。 5. **尊重...

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

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

    C# 抓取网页内容帮助方法

    C# 抓取网页内容帮助方法,能投通过标签自动匹配想要输出的内容

    java爬虫抓取网页内容,下载网站图片

    Java爬虫技术是一种用于自动化获取网页内容的程序,它能够模拟人类浏览器的行为,遍历互联网上的页面,提取所需的信息。在本场景中,我们将重点讨论如何利用Java编写爬虫来抓取网页内容并下载其中的图片。 首先,...

    java抓取网页内容源代码

    给定的Java代码实现了一个基本的网页抓取功能,它通过发送HTTP请求至指定URL,获取网页内容,并将其保存到本地文件中。具体步骤包括: 1. **初始化URL对象**:首先,创建一个`URL`对象,用于表示要抓取的网页地址。...

    米云视频抓取插件 一键获取网页内容视频源地址下载 浏览器插件

    一键获取网页内容视频源地址下载 浏览器插件,适合大部分浏览器可用 插件获取下载格式: flv、hlv、f4v、mp4、mp3、wma、wav、m4a、letv、ts、webm、 ogg、ogv、acc、mov、mkv、m3u8 MIME类型:video/* audio/*...

    网页爬虫自动抓取网页内容

    2. **HTTP请求**:爬虫通过发送HTTP或HTTPS请求到服务器来获取网页内容。这涉及到HTTP方法如GET和POST,以及可能需要的头信息,如User-Agent,以模拟浏览器行为。 3. **HTML解析**:收到服务器返回的HTML响应后,...

    模拟浏览器抓取网页内容(审查元素中内容)

    利用HtmlAgilityPack可以轻松获取网页内容,但是无法获取动态加载的内容, 通过webBrowser模拟浏览器,获取网页内容。 大致思路: 1、webBrowser加载网页 (如有Ajax动态加载分页的网站,需要配合页面动作,直到页面...

    c++获取网页指定内容

    "C++获取网页指定内容"这个主题涉及到使用C++编程语言来编写网络爬虫,以抓取特定网页上的信息。这里我们将深入探讨如何使用C++进行网络爬虫开发,以及涉及到的相关知识点。 首先,要构建一个C++网络爬虫,你需要...

    抓取网页图片,css和js

    网页抓取技术是一种获取网页内容的方法,通常用于数据挖掘、备份、分析或创建离线浏览体验。本话题主要关注如何抓取网页上的图片、CSS(层叠样式表)和JavaScript文件,以及处理CSS中内联的图片资源。下面将详细讨论...

    delphi抓取网页数据

    例如,设置其`Host`属性为122考试平台的URL,然后调用`Get`方法来获取网页内容。 2. **Wininet库**:Wininet是Windows操作系统内置的网络编程接口,也可以用于发送HTTP请求。在Delphi中,我们可以使用InternetOpen...

    Delphi模拟搜索引擎蜘蛛抓取网页内容.rar

    2. **HTTP请求**:蜘蛛通过发送HTTP请求到目标URL来获取网页内容。在Delphi中,可以使用 Indy 或 Synapse 这样的库来实现HTTP通信。 3. **HTML解析**:收到响应后,蜘蛛需要解析HTML内容。这通常涉及到DOM(文档...

    htmlparser抓取网页内容

    本项目以"htmlparser抓取网页内容"为主题,具体实践了如何利用HTMLParser库来从国家专利局的网站上抓取专利状态信息。 首先,我们要理解HTMLParser的工作原理。HTMLParser是Python的内置库,它提供了一个基础的事件...

    C#抓取网页内容.pdf

    总的来说,C#通过`WebRequest`和`WebResponse`进行网络通信,获取网页数据,再使用`StreamReader`读取和解析这些数据。在处理更复杂的情况,如登录、POST数据、处理JSON或XML等,可能需要使用到其他类和方法,如`...

    C# 获取网页内容代码

    在C#编程环境中,获取网页内容是常见的任务,尤其对于数据爬虫或者自动化脚本来说。这个主题主要涉及网络编程和HTML解析。以下是一些关键知识点的详细解释: 1. **HTTP请求**: C#中获取网页内容首先要进行HTTP请求...

Global site tag (gtag.js) - Google Analytics