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