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