在Android上使用网络收获

时间:2012-05-27 02:15:12

标签: android webharvest

我正在构建一个使用web harvest api从网站提取数据并将其存储在文件中的移动应用程序。然后,应用程序将使用数据来操纵它并显示它。 我的问题是当使用webharvest for java时,配置文件和输出文件的路径是相对于本地磁盘的,比如“C:/config.xml”和“C:/ docs”,但是在Android项目上使用它时在Eclipse上,配置文件应该在项目中,输出文件应该在项目或缓存中。 任何人都可以告诉我应该如何设置读取Web收集配置的路径,以及编写输出xml文件的路径?

1 个答案:

答案 0 :(得分:0)

我有同样的问题,遗憾的是我无法使其发挥作用。我想到了以下解决方案,但它引发了异常。

InputStream in_s = context.getResources().openRawResource(R.raw.webharvestconfig);
InputSource inputSource = new InputSource(in_s);
ScraperConfiguration config = new ScraperConfiguration(inputSource);

例外:

04-25 16:47:26.835: W/System.err(1057): org.webharvest.exception.ParserException: asset
04-25 16:47:26.835: W/System.err(1057): at org.webharvest.definition.XmlParser.parse(Unknown Source)
04-25 16:47:26.846: W/System.err(1057): at org.webharvest.definition.XmlNode.getInstance(Unknown Source)
04-25 16:47:26.846: W/System.err(1057): at org.webharvest.definition.ScraperConfiguration.createFromInputStream(Unknown Source)
04-25 16:47:26.846: W/System.err(1057): at org.webharvest.definition.ScraperConfiguration.<init>(Unknown Source)

我也尝试将xml字符串直接写入InputStream,如下所示:

InputStream in = new ByteArrayInputStream("<?xml version=\"1.0\" encoding=\"UTF-8\"?><config charset=\"UTF-8\"><html-to-xml> <http url=\"http://www.google.com\"/> </html-to-xml></config>".getBytes());

但没有更好的运气(虽然异常不同)。

我不知道,理论上它应该有效。 在研究我刚刚展示的例外情况时,我甚至发现使用ScraperConfiguration的following example和我一样,但是......

为了完整性并提供更多信息,我提供了ScrapeConfiguration类中的source code

如果我能够使它发挥作用,我将编辑这篇文章。