昨天在网上百度看到一个提问:http://zhidao.baidu.com/question/423488719.html?fr=uc_push&push=ql&oldq=1(题目内容是用jsoup抓取这个网站的信息并输出Free一栏中排名上升度大于30的游戏名)
因为刚看了Jsoup,所以就拿过来做了一下,源代码如下(仅供参考,如果有什么不对的地方,欢迎指正)
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.jsoup.Connection;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
public class PageParse {
public static void main(String[] args) {
String concreateURL = "http://www.appannie.com/top/iphone/united-states/games/";
Connection c = Jsoup.connect(concreateURL);
try {
// 这里如果直接用c.get()是获取不到Document的,具体原因我说不上来
// 跟踪信息是:java.io.IOException: 503 error loading URL
// http://www.appannie.com/top/iphone/united-states/games/
// 下面这种获取方式可以
Document doc = c.data("query", "Java").userAgent("Chrome")
.cookie("auth", "token").timeout(5000).post();
// 很想只获取css为上升的域,但是完整的css加上去没有效果,就把这一列域全部获得了(需要改进,肯定有更好的方法)
Elements eles = doc.select("td.top_free*");
List<String> nameList = new ArrayList<String>();
for (Element ele : eles) {
String text = ele.select("span").first().text();
if (text.length() > 1 && text.startsWith("▲")) {
if (Integer.parseInt(text.substring(1)) > 30) {
// 在这里.html()和.text()方法获得的内容是一样的
System.out.println(ele.select("a").first().html());
nameList.add(ele.select("a").first().text());
}
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
我运行时的结果是:
The Tribez
PipeRoll
Road Warrior Multiplayer Racing - by Top Free Apps and Games
The Oregon Trail: American Settler
Jewels of the Amazon
Zombie Band
Cleopatra's Pyramid
Monster Galaxy: The Zodiac Islands
代码中的nameList存放的是热度大于30的游戏名,在代码中我没有处理这个List,如果有人看到并会改正的话,欢迎指出,最好是给出一个解释,因为写这个也是糊里糊涂的。
参考资料:
分享到:
相关推荐
在本文中,我们将深入探讨如何使用Jsoup进行简单的网页爬虫操作。 首先,Jsoup的主要功能包括HTML解析、DOM遍历以及选择器查询。通过解析HTML,我们可以获取到网页中的结构化信息,比如段落、标题、链接等。DOM遍历...
**jsoup简单封装** 在提供的博客链接中,作者分享了一个简单的jsoup封装示例。通常,这样的封装会包含以下组件: 1. **连接设置**:封装类可能包含一个方法用于设置连接参数,如URL、超时时间等。 2. **HTML获取*...
本篇文章将深入探讨如何使用Jsoup进行简单的网页抓取,并将抓取的数据写入Excel的多个工作表。 首先,我们要了解Jsoup的基本用法。Jsoup的核心功能在于解析HTML文档,通过其提供的选择器语法,我们可以像操作DOM...
Jsoup 是一个用于处理和解析HTML的Java库,它提供了强大的功能,使得在Java程序中操作HTML文档变得简单而直观。在Jsoup 1.10.2版本中,这个API进一步优化了对HTML的处理能力,提供了丰富的类和方法来满足各种需求。 ...
2. **选择器语法**:Jsoup支持类似于CSS的选择器,使得定位HTML元素变得简单直观。例如,`doc.select("p")`将选取所有的段落元素。 3. **DOM操作**:如同操作DOM树一样,可以对Document对象进行增删改查操作,如...
Java和Jsoup库在Web数据抓取中的应用广泛,它们为开发者提供了强大的工具来解析HTML文档,提取所需信息,并进一步处理这些数据。本教程将深入探讨如何使用Jsoup进行网页抓取,如何将抓取的数据存储到数据库中,以及...
Jsoup在实际开发中的应用广泛,如网页抓取、信息提取、自动化测试,甚至是构建简单的爬虫。它的易用性和灵活性使得它成为Java开发者处理HTML数据的首选工具之一。通过熟练掌握Jsoup,开发者可以高效地处理网络上的...
在实际应用中,Jsoup广泛应用于数据抓取、网页爬虫、信息提取等领域。例如,你可以用它来抓取电商网站的商品信息,或者分析社交媒体上的帖子内容。 总的来说,Jsoup为Java开发者提供了一种高效、灵活且易于使用的...
jsoup广泛应用于各种项目,包括爬虫框架、内容管理系统、数据提取工具等。通过它,开发者可以高效地解析网页,提取所需信息,甚至进行页面结构的修改和重构。 ### 总结 jsoup-1.7.1.chm这个压缩包包含的是jsoup库...
使用Jsoup库文件,开发者可以快速地构建功能丰富的Java应用,实现高效的数据抓取和处理。在实际开发中,结合Java的IO流和多线程技术,可以进一步提升数据处理的速度和效率。 在压缩包"Jsoup库文件"中,可能包含以下...
jsoup广泛应用于各种场景,包括: 1. **网页抓取**:通过jsoup,开发者可以构建简单的网页爬虫,获取网页上的数据。 2. **信息提取**:新闻聚合应用、电商价格监控等项目中,jsoup可以帮助提取关键信息。 3. **内容...
下面我们将深入探讨jsoup的核心功能和主要应用。 **核心功能** 1. **HTML解析**:jsoup能够解析完整的HTML或XML文档,将其转化为DOM(Document Object Model)结构,与浏览器内部的工作方式类似。这样,开发者可以...
3. **数据提取**:jsoup支持提取文本、属性值、链接、图片等HTML元素的数据,这对于网络爬虫或网页抓取应用非常有用。例如,可以轻松获取页面标题、段落内容、链接地址等信息。 4. **HTML清理**:jsoup具备HTML清理...
JSoup是一款强大的Java库,专为处理HTML文档而设计,它提供了方便的API,使得抓取和解析HTML变得简单易行。JSoup能够模拟浏览器的行为,理解和构建DOM树,进而允许开发者通过CSS选择器来定位元素,进行查找、提取或...
例如,新闻聚合应用可能会用Jsoup抓取各个网站的新闻标题和摘要;电商网站可能用它来抓取商品价格和评价信息。 5. **版本信息**:这里的版本号是1.6.1,可能较新版本有所落后。当前最新版的Jsoup可能增加了更多的...
Jsoup是一款非常强大的Java库,它专为处理HTML文档而设计,提供了丰富的API,使得从HTML中提取数据变得简单易行。Jsoup的核心功能包括解析HTML,提取数据,以及对HTML文档进行操作。在"jsoup-1.8.3(含源码)"这个...
3. **CSS选择器**:Jsoup集成了CSS选择器,使得可以通过简单的字符串表达式选取页面上的元素,如`doc.select("div.title")`就能选取所有class为"title"的div元素。 4. **类似jQuery的API**:Jsoup提供了类似于...
在实际应用中,jsoup广泛用于网页爬虫、信息提取、数据清洗、自动化测试等多个领域。比如,你可以用它来抓取网站上的新闻标题、用户评论,或者从电商网站提取商品信息。此外,它也可以与Spring、Hibernate等其他Java...
总结来说,Jsoup是一个强大的工具,它使得在Java和Android应用中解析和操作HTML变得简单易行。通过学习和熟练掌握Jsoup,你可以高效地实现网页内容的获取与修改,为你的应用增添更多的功能和价值。同时,要注意在...