package function.htmlparser;
import org.htmlparser.Node;
import org.htmlparser.NodeFilter;
import org.htmlparser.Parser;
import org.htmlparser.filters.AndFilter;
import org.htmlparser.filters.HasAttributeFilter;
import org.htmlparser.filters.HasParentFilter;
import org.htmlparser.filters.TagNameFilter;
import org.htmlparser.tags.LinkTag;
import org.htmlparser.util.NodeIterator;
import org.htmlparser.util.NodeList;
import org.htmlparser.util.ParserException;
public class Test {
public void listAll(Parser parser){
try {
NodeIterator nodeIterator=parser.elements();
while (nodeIterator.hasMoreNodes()){
System.out.println("+++++++++++++++++++++");
Node node=nodeIterator.nextNode();
System.out.println("getText():"+node.getText());
System.out.println("getHtml():"+node.toHtml());
}
} catch (ParserException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void filter(Parser parser){
NodeList nodelist;
// NodeFilter filterL = new TagNameFilter("a");
NodeFilter filterS = new HasAttributeFilter("class","post-title");
NodeFilter filterP= new HasParentFilter(filterS);
try {
nodelist=parser.parse(filterP);
//Node node=nodelist.elementAft(0);
// NodeFilter haf= new HasAttributeFilter("class","post-title");
// 获取相应的节点
nodelist=nodelist.extractAllNodesThatMatch(filterP,true);
for(int i=0;i<nodelist.size();i++){
LinkTag link=(LinkTag)nodelist.elementAt(i).getFirstChild();
System.out.println(link.getAttribute("href")+"/n");
System.out.println(link.getStringText());
// System.out.println(nodelist.elementAt(i).getFirstChild().getText()+"-----"+nodelist.elementAt(i).getFirstChild().toHtml());
}
} catch (ParserException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void main(String[] args) {
String urlStr="http://localhost:8080/tomfish88/error.jsp";
Parser parser=new Parser();
try {
parser.setURL(urlStr);
parser.setEncoding("gb2312");
} catch (ParserException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Test test=new Test();
test.filter(parser);
}
}
html文件
<%@ page language="java" contentType="text/html; charset=GB18030"
pageEncoding="GB18030"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030">
<title>Insert title here</title>
</head>
<body>
error!!!!!!
<table>
<tr><td>td-c1</td></tr>
<tr class="post-title"><td><a href="http://www.fsd.com">连接1</a></td></tr>
<tr><td>td-cc1 <a href="http://www.fsd44444.com">连接3</a> </td></tr>
<tr class="post-title"><td><a href="http://www.fsd222222.com">连接2</a></td></tr>
</table>
</body>
</html>
java文件
分享到:
相关推荐
综上所述,“网页抓取例子”可能涵盖了使用JSP进行网页请求、HTML解析和数据提取的实践,同时也可能讲解了如何处理一些常见的网页抓取问题。通过阅读提供的博文链接,我们可以更深入地理解这个具体例子的实现细节。
标题 "C++网页抓取源码及例子亲测可用" 提供了我们即将讨论的核心主题:使用C++语言进行网页内容的抓取。这通常涉及到网络编程和字符串处理,特别是对于解析HTML文档的部分。C++作为一门强大的系统级编程语言,能够...
这段代码会抓取页面上所有链接的`href`属性。 接下来,我们转向**抓取网页JS返回数据**。许多现代网页使用Ajax技术动态加载数据,这些数据通常不会出现在原始HTML中,而是通过JavaScript执行后生成。为了抓取这类...
在这个例子中,我们创建了一个`Parser`对象,传入要抓取的网页URL。然后通过`elements()`方法获取一个迭代器,遍历HTML中的所有节点。当找到`<title>`标签时,我们提取并打印出网页的标题。 HTMLParser库还支持更...
本教程将通过实例来讲解如何使用HTMLParser从网页上抓取数据,并简要提及Java解析XML的方法。 首先,我们需要了解HTMLParser的基本工作原理。HTMLParser遵循事件驱动的模型,它会逐行读取HTML源代码,遇到特定的...
《网络爬虫之简单链接抓取》这篇文章及配套的源码`spider.py`主要讲述了如何构建一个基础的网络爬虫来抓取网页中的链接。网络爬虫是自动化浏览Web并提取信息的一种程序,它是大数据分析和搜索引擎的重要组成部分。...
另一方面,Teleport Pro是另一款功能强大的网页抓取工具,虽然它的镜像网站不会自动将链接转换为相对链接。这意味着在本地浏览时,可能需要保持网络连接,以便加载外部链接的内容。Teleport Pro支持多种抓取模式,...
本教程将详细介绍如何结合使用HttpClient与Jsoup来抓取和处理网页数据。 HttpClient是Apache基金会开发的一个开放源代码库,它允许开发者发送HTTP请求并接收响应,支持多种HTTP协议版本。HttpClient提供了丰富的...
对于描述中提到的“jsoup抓取网页内容”,我们可以扩展这个例子,抓取网页上的特定元素。例如,如果你想要获取所有段落(`<p>`标签)的内容,可以这样做: ```java List<String> paragraphs = new ArrayList(); ...
1. **抓取网站内容**:这是网络爬虫的基本功能,通过HTTP或HTTPS协议向服务器发送请求,获取返回的HTML或其他格式的网页内容。Python中常用的库有`requests`,它可以方便地发送GET或POST请求。 2. **获取网站内容**...
在这个例子中,我们连接到"http://example.com",然后选择所有的链接元素,并打印出它们的`href`属性。 其次,Android中使用Jsoup需要注意网络权限问题。在AndroidManifest.xml中,需要添加INTERNET权限: ```xml ...
这个例子将帮助读者理解如何实际操作抓取真实网站的数据。 #### 四、爬虫实现步骤详解 ##### 4.1 导入所需库 首先,我们需要导入所需的Python库: ```python import requests from bs4 import BeautifulSoup ...
在这个例子中,网页地址是`http://v.163.com/special/opencourse/machinelearning.html`。 - 观察源代码,我们可以发现视频链接通常是以`href='http://mov.bn.netease.com/mobilev/... .mp4'`的形式出现。 2. **...
比如,要找到网页上的所有链接,可以这样做: ```python from bs4 import BeautifulSoup soup = BeautifulSoup(html_content, 'html.parser') links = soup.find_all('a') for link in links: print(link.get('...
通过熟练掌握jsoup库,我们可以快速实现对特定网页的定制化抓取,例如在新浪高尔夫频道的例子中,提取新闻信息并进行分析或存档。此外,jsoup还提供了多种高级功能,满足了多样化的网页解析需求,使得开发者可以更...
接下来,详细介绍如何使用Python编写一个简单的网络爬虫,该爬虫可以抓取指定网页中的标题和链接列表。 ##### 1. 获取网页内容 为了获取网页内容,我们需要向指定的URL发送HTTP GET请求。这可以通过`requests.get...
例如,如果要从网页中抓取特定类别的链接,我们可以创建一个`NodeVisitor`,在访问`Tag`时检查其是否为`<a>`标签,并收集相关信息。 总之,HTMLParser提供了一种灵活且高效的方式,帮助Java开发者解析和处理HTML...
标题“获取指定网页上所有链接”所涉及的知识点主要集中在网页数据抓取和解析领域,这一过程通常称为网络爬虫或网页抓取。下面将详细解释这个过程,并结合描述中的“小东东”(即简单工具)进行阐述。 首先,我们要...
在C#编程中,获取网页中的所有超级链接是一项常见的任务,尤其在网页抓取或数据分析等领域。本项目提供了一个可以直接运行的示例,帮助开发者理解如何实现这一功能。以下将详细解释这一过程涉及的关键知识点: 1. *...
下面我们将通过一个具体的例子来了解如何使用Phantomjs结合Python进行网页抓取。 #### 三、Phantomjs代理设置 在具体实现过程中,首先需要配置一个Phantomjs的代理服务。这通常涉及到以下几个步骤: 1. **下载并...