Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/216.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用JSoup和Android Studio从网站或rss源收集信息_Java_Android_Parsing_Rss_Jsoup - Fatal编程技术网

Java 使用JSoup和Android Studio从网站或rss源收集信息

Java 使用JSoup和Android Studio从网站或rss源收集信息,java,android,parsing,rss,jsoup,Java,Android,Parsing,Rss,Jsoup,我正在学习使用JSoup(慢慢地)解析网站的源代码,但我觉得自己已接近极限。也就是说,我不完全确定我应该研究什么方法 理论上,我想开发一个应用程序,通过特定的搜索页面(如谷歌、怪物、Craigslist、eBay等)进行筛选,并提取某些数据。这些数据可能在第一页,但也可能在列表下方10多页(在谷歌,显然可能有数百页)。无论是搜索结果(谷歌)、招聘启事(怪物)还是待售物品(Craigslist/eBay),我该怎么做 直到最近我才知道JSoup。而且我并没有“被困”在使用它上。但是,我的研究让我相

我正在学习使用JSoup(慢慢地)解析网站的源代码,但我觉得自己已接近极限。也就是说,我不完全确定我应该研究什么方法

理论上,我想开发一个应用程序,通过特定的搜索页面(如谷歌、怪物、Craigslist、eBay等)进行筛选,并提取某些数据。这些数据可能在第一页,但也可能在列表下方10多页(在谷歌,显然可能有数百页)。无论是搜索结果(谷歌)、招聘启事(怪物)还是待售物品(Craigslist/eBay),我该怎么做

直到最近我才知道JSoup。而且我并没有“被困”在使用它上。但是,我的研究让我相信,使用JSoup会给我期望的结果。所以,我正在努力学习如何使用它来做我想做的事情。(如果有人知道任何广泛的初学者教程,请告诉我)

那我该怎么做呢?我知道这是一个模糊的问题,但我有一个目标,我不知道如何实现它

我还考虑过在可用时使用/搜索RSS提要(如Craigslist)。这是否也可能,并且比直接从站点/源代码中提取更容易或更难

最重要的是,如果出现了新信息(Craigslist/eBay上出售的新物品、Monster上的新工作等),我希望能够向用户发送通知。我知道这是一个单独的主题,我可以确定


提前谢谢

你的回答有点含糊,所以我会尽量多说。 Jsoup是一个
HTML/XHTML解析器
库。这意味着它可以向某个url发出
GET
POST
请求,并获取服务器生成的内容。然后它解析这些内容,使用java对象构建一个
DOM
表示

问题在于你的例子。你提到了
Google
Monster
。据我所知,这些网站使用Ajax从服务器检索内容。他们使用
javascript
来生成动态内容
Jsoup
无法处理
javascript
生成的内容。这是因为它无法执行
javascript
。它当然可以“看到”它,因为它包含在服务器的响应中,但它认为它是简单的文本,而不是代码。浏览器可以处理此类内容,因为浏览器包含一个
javascript
执行引擎

通常,从源代码的
API
获取内容更安全/更好/更容易。它提供的是
rss提要
还是
API
?那就用这个。例如,
Google
以编程方式执行搜索查询

如果源代码没有提供访问它的编程方式,那么您可以使用
Jsoup
当且仅当内容是静态的时解析内容。为了确定内容是静态的还是由
javascript
生成的,请访问要解析的站点并按Ctrl+U。当您向站点发出请求时,
HTML
的网格就是
Jsoup
将接收到的。如果您需要的内容未包含在其中,则该内容是动态的。在这种情况下,必须使用,这是一个库/框架,其中包括一个
javascript
执行引擎。这样,您可以100%模拟浏览器

就教程而言,它将涵盖您关于
Jsoup
的所有需求。如果内容是
javascript
生成的,那么您可以使用无头浏览器来检索它,然后使用
Jsoup
来解析已经检索到的内容,仅用于解析而不获取内容

我提供的材料足以继续你的研究。为了获得更好的信息,你必须明确你所面临的问题

更新


检查一下,你的答案有点模糊,所以我会尽量多说。 Jsoup是一个
HTML/XHTML解析器
库。这意味着它可以向某个url发出
GET
POST
请求,并获取服务器生成的内容。然后它解析这些内容,使用java对象构建一个
DOM
表示

问题在于你的例子。你提到了
Google
Monster
。据我所知,这些网站使用Ajax从服务器检索内容。他们使用
javascript
来生成动态内容
Jsoup
无法处理
javascript
生成的内容。这是因为它无法执行
javascript
。它当然可以“看到”它,因为它包含在服务器的响应中,但它认为它是简单的文本,而不是代码。浏览器可以处理此类内容,因为浏览器包含一个
javascript
执行引擎

通常,从源代码的
API
获取内容更安全/更好/更容易。它提供的是
rss提要
还是
API
?那就用这个。例如,
Google
以编程方式执行搜索查询

如果源代码没有提供访问它的编程方式,那么您可以使用
Jsoup
当且仅当内容是静态的时解析内容。为了确定内容是静态的还是由
javascript
生成的,请访问要解析的站点并按Ctrl+U。当您向站点发出请求时,
HTML
的网格就是
Jsoup
将接收到的。如果您需要的内容未包含在其中,则该内容是动态的。在这种情况下,必须使用,这是一个库/框架,其中包括一个
javascript
执行引擎。这样可以模拟浏览器1