Je crée une application mobile qui utilise l'API de récolte Web pour extraire des données d'un site Web et les stocker dans un fichier. Ensuite, l'application utilisera les données pour le manipuler et le montrer. Mon problème est que lors de l'utilisation de webharvest pour java, les chemins du fichier de configuration et du fichier de sortie sont relatifs au disque local, comme "C: /config.xml" et "C:/docs", mais lors de l'utilisation sur Android projet sur Eclipse, le fichier de configuration doit être dans le projet et le fichier de sortie doit être dans le projet ou dans le cache. Quelqu'un peut-il me dire ce que je devrais mettre le chemin pour lire la config Web récolte, et le chemin pour écrire le fichier XML de sortie?Utilisation de la collecte Web sur Android
Répondre
J'ai le même problème et malheureusement je ne suis pas en mesure de le faire fonctionner. J'ai pensé à la solution suivante, mais cela crée une exception.
InputStream in_s = context.getResources().openRawResource(R.raw.webharvestconfig);
InputSource inputSource = new InputSource(in_s);
ScraperConfiguration config = new ScraperConfiguration(inputSource);
L'exception:
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)
J'ai aussi essayé d'écrire directement la chaîne xml dans le InputStream comme ceci:
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());
Mais sans plus de chance (bien que l'exception était différente). Je ne sais pas, en théorie, cela devrait fonctionner. En faisant des recherches pour l'exception que je viens montrais, je trouve même le following example qui utilise le ScraperConfiguration de la même manière que je fais, mais ...
Juste pour le tremblement de l'exhaustivité et de donner plus d'informations, je fournir le source code de la classe ScrapeConfiguration.
Si je suis en mesure de le faire fonctionner, je vais modifier ce post.
- 1. FirstOrDefault sur la collecte d'objets
- 2. Collecte de place excessive (et utilisation de la mémoire?)
- 3. Python Web de collecte de données
- 4. Utilisation de la collecte simultanée dans le programme EJB
- 5. Itération sur la collecte de longues listes
- 6. Collecte de données - service web ou application web hébergée?
- 7. Utilisation de la bibliothèque C++ sur le site Web
- 8. Utilisation de Web View HTML dans Android
- 9. Utilisation de ListViews sur Android?
- 10. Utilisation de longs types entiers avec les méthodes de collecte
- 11. Utilisation des listes pour la collecte des éléments
- 12. Android Volley Json Données Pas de collecte
- 13. index MongoId sur la collecte polymorphes
- 14. Appliquer un filtre sur la collecte d'objets
- 15. .trigger ('flou') sur la collecte des entrées?
- 16. REST utilisation Web Service dans Android
- 17. Erreur de délai d'attente lors de la première utilisation du service Web sur android
- 18. Utilisation de supports non compilés sur Android
- 19. Utilisation des temps sur la plateforme Android
- 20. Utilisation de fractions sur des sites Web
- 21. Utilisation du service Web dans Android
- 22. Collecte de données avec ADK
- 23. la collecte de données mobile rentable
- 24. Collecte de données SQL avec retour à l'application Web asp.net
- 25. La collecte de flux RSS en ligne?
- 26. Question sur Ruby collecte méthode
- 27. Formulaires Web flexibles pour les systèmes de collecte de données
- 28. site de désactivation de fonction de collecte sur MySite
- 29. Utilisation des données sur Android
- 30. fragments mContext et la collecte des ordures