1

我正在构建一个移动应用程序,该应用程序使用网络收获 api 从网站中提取数据并将其存储在文件中。然后应用程序将使用数据来操作它并显示它。我的问题是,当为 java 使用 webharvest 时,配置文件和输出文件的路径是相对于本地磁盘的,例如“C:/config.xml”和“C:/docs”,但是在 Android 项目上使用它时在 Eclipse 上,配置文件应该在项目中,输出文件应该在项目或缓存中。谁能告诉我应该把读取网络收获配置的路径和写入输出 xml 文件的路径放在什么位置?

4

1 回答 1

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 但是......

只是为了完整性和提供更多信息,我提供了 ScrapeConfiguration 类的源代码

如果我能让它工作,我会编辑这篇文章。

于 2013-04-25T16:58:40.170 回答