昨天在网上百度看到一个提问: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,如果有人看到并会改正的话,欢迎指出,最好是给出一个解释,因为写这个也是糊里糊涂的。
参考资料:
分享到:
相关推荐
在另一方面,如果是一个简单或者独立的应用,确定只有一种日志系统,那么就没有使用SLF4J的必要。假设你打算将你使用log4j的产品卖给要求使用JDK 1.4 Logging的用户时,面对成千上万的log4j调用的修改,相信这绝对...
复合页面,始终是一个开发web应用时必须面对的问题,对struts的titles有厌倦,听说sitemesh不错,尝试,原以为复杂,谁知用起来是那么地简单,太令人惊叹! 写下试用教程: 1.准备一个web项目,到sitemesh官方网站...
使用 Jsoup 解析器和正则表达式测试从网站提取数据的简单应用程序。 它允许您输入查询(Jsoup 选择器)并可选择从中提取值的属性。 对于正则表达式,它允许您输入正则表达式,然后显示从第一组提取的值(即将支持...
《纽约时报》是Minimal News:rolled-up_newspaper:Android应用程序,旨在描述JSoup与现代Android开发工具的结合使用。 Times纽约时报Times纽约时报是an最小新闻:rolled-up_newspaper:Android应用程序,旨在描述JSoup...
NYTimes-App::Statue_of_Liberty:纽约时报应用程序的简单演示:mobile_phone:使用具有MVVM架构的Jsoup Web搜寻器:fire:
电影推荐 RoboGuice,Retrofit,Jsoup, id = main.org.yourmovies上的简单Android应用
经过一段时间的Android编程学习后,写了这个比较综合的android阅读类的APP应用,附上了完整的源代码,源代码部分包括了阅读应用APP的源码,以及服务器程序,我给这个阅读小程序起名字叫做“指读”。这里的服务端数据...
一个简单的应用程序,可以观看动漫而没有任何广告。 它使用Jsoup从gogoanime网站提取信息。 特征 画中画模式 搜索动漫 查看您最近看过的动漫 动漫列表 包含6142动漫 使用的图书馆 Exoplayer-显示视频 Jsoup-用于...
在分支中从命令行创建一个简单的 maven 项目(指定 artifactId 和 groupId 任意) 在创建的项目中,创建一个类,使用 jsoup,将解析 google 搜索结果页面并仅将找到的页面的标题显示到控制台(向
感兴趣的朋友可以在网站上搜一下“网易”两个字就可以看到相关源码了,本项目的新闻用的是Jsoup抓取自新浪RSS新闻源,天气信息用SAX解析器解析的一个网络XML天气源(2.3.3系统测试不可用,没有使用更高版本测试),...
Android 爬取学校内网数据简单利用jsoup爬取数据
(Java)网络爬虫 by 夜猫.zip:简单的爬虫应用,使用了jsoup-1.11.2.jar包,对http://kaijiang.500.com进行了测试
所以我认为我应该解析网页并在其中添加一些内容:D 使用jsoup,Java HTML Parser和Picasso(适用于Android的功能强大的图像下载和缓存库)的Android应用
这个简单的网络抓取工具应用通过swagger-ui或使用API交互客户端工具(如Postman)(位于通过提供的Api接受用户的 。 用户必须在上述终点处发送POST请求,请求正文为{“ url”:“ ”},并希望收到2XX成功消息。 ...
一旦 web 应用程序开始在 tomcat 服务器上运行,它就会使用 servlet web 侦听器中的线程使用 jsoup 库向 metacritic 网站发出请求。 我保持了一个固定的刷新间隔,在那里我向 metacritic 网站发出请求,以使用上述...
简单的抓取工具,可从url抓取和下载指定年份的所有邮件: : 。 该项目必须具有一个构建系统,并且该构建系统应创建一个具有定义的应用程序入口点的jar(java -jar crawler-jar-with-dependencies.jar [opts]应该可以...
口袋一方面可以作为工具发短信打电话、管理各类型文件、查询天气、简单计算、翻译单词、摩斯电码、二维码扫描与生成,另一方面可以作为获取资讯的方式,提供了文章、趣闻、段子、图书、音乐、电影、妹子图、漫画、...
利用Jsoup技术,在Android的基础上开发的简单的可以爬取学生成绩信息的apk项目应用.如果你喜欢,想了解更多,欢迎下载使用;请不要随意传播,尊重老哥我在农村学java的不容易哈;
简单聊天软件CS模式 2个目标文件 一个简单的CS模式的聊天软件,用socket实现,比较简单。 凯撒加密解密程序 1个目标文件 1、程序结构化,用函数分别实现 2、对文件的加密,解密输出到文件 利用随机函数抽取幸运数字 ...
在ViewModel中使用CoroutineScope进行HTTP通信在ViewModel中简单,... gradle(应用程序) implementation ("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.4.2")implementation ("org.jsoup:jsoup:1.13.1")MainVie