Java 使用JSoup和Android Studio从网站或rss源收集信息
我正在学习使用JSoup(慢慢地)解析网站的源代码,但我觉得自己已接近极限。也就是说,我不完全确定我应该研究什么方法 理论上,我想开发一个应用程序,通过特定的搜索页面(如谷歌、怪物、Craigslist、eBay等)进行筛选,并提取某些数据。这些数据可能在第一页,但也可能在列表下方10多页(在谷歌,显然可能有数百页)。无论是搜索结果(谷歌)、招聘启事(怪物)还是待售物品(Craigslist/eBay),我该怎么做 直到最近我才知道JSoup。而且我并没有“被困”在使用它上。但是,我的研究让我相信,使用JSoup会给我期望的结果。所以,我正在努力学习如何使用它来做我想做的事情。(如果有人知道任何广泛的初学者教程,请告诉我) 那我该怎么做呢?我知道这是一个模糊的问题,但我有一个目标,我不知道如何实现它 我还考虑过在可用时使用/搜索RSS提要(如Craigslist)。这是否也可能,并且比直接从站点/源代码中提取更容易或更难 最重要的是,如果出现了新信息(Craigslist/eBay上出售的新物品、Monster上的新工作等),我希望能够向用户发送通知。我知道这是一个单独的主题,我可以确定Java 使用JSoup和Android Studio从网站或rss源收集信息,java,android,parsing,rss,jsoup,Java,Android,Parsing,Rss,Jsoup,我正在学习使用JSoup(慢慢地)解析网站的源代码,但我觉得自己已接近极限。也就是说,我不完全确定我应该研究什么方法 理论上,我想开发一个应用程序,通过特定的搜索页面(如谷歌、怪物、Craigslist、eBay等)进行筛选,并提取某些数据。这些数据可能在第一页,但也可能在列表下方10多页(在谷歌,显然可能有数百页)。无论是搜索结果(谷歌)、招聘启事(怪物)还是待售物品(Craigslist/eBay),我该怎么做 直到最近我才知道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
执行引擎。这样,您可以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