2014-03-13 35 views
0

我在http://try.jsoup.org/中试过了我的查询,它工作正常。但是,当我在android(4.2.2)上尝试它时,它返回一个零大小的数组。在android上使用jsoup选择标记为itemprop = recipeInstructions的段落

我想要的查询是[itemprop = recipeInstructions]。

网站我测试的是http://www.foodnetwork.co.uk/recipes/real-meatballs-and-spaghetti-674.html

我的Android代码看起来像

Document doc = Jsoup.connect("http://www.foodnetwork.co.uk/recipes/real-meatballs-and-spaghetti-674.html").get(); 
Elements recipe = doc.select("[itemprop=recipeInstructions]"); 
// recipe is a zero sized array :(

我链接到的jsoup-1.7.3.jar

我的Android代码工作正常在网站http://www.foodnetwork.com/recipes/ina-garten/broccoli-and-bow-ties-recipe.html,所以我怀疑这是一个HTML中的错误,或者jsoup如何解析第一个网站的html。

回答

1

尝试添加 “用户代理”。

Document doc = Jsoup.connect(url).userAgent("Mozilla/4.0").get(); 

因为,服务器可以根据不同的浏览器识别返回不同的页面。

1

尝试类似的东西:

Elements recipe = doc.select("p[itemprop = recipeInstructions]"); 
+0

这可以在try.jsoup站点上运行,但不能在android上运行:-( –

+0

您是否将任务执行到asyncTask中?这可能是数组空值的原因 – AlexDG

+0

是的,它运行在AsyncTask (如果你尝试从主线程运行它,我认为你会得到一个异常)。 –