Je ne peux pas, pour la vie de moi, plate-forme HtmlUnit pour attraper ce site:Site impossible pour HtmlUnit?
Je suis sûr qu'il a à voir avec les grandes quantités de scripts en cours d'exécution en arrière-plan. Peut-être que ces scripts n'ont pas assez de temps pour être complètement chargés?
J'ai aussi essayé simplement de saisir bing.com/travel, et pas de succès non plus. Il casse la fonction getPage du nouveau client HtmlPage.
La sortie donne une pléthore de runtimeErrors (« les données nécessaires pour terminer cette opération ne sont pas encore disponibles »), tous pour la même sourceName (« http://www.bing.com/travel/jsxc.vjs?a=common&v=5.5.0-1278007084280 »)
Puis une exception couple jeté un manque « ("dans un ensemble de scripts sur bing.com.
ensuite, il appelle javascript, puis se termine brusquement.
Je sais que cela pourrait être une poignée de problèmes que d'autres pourraient ne pas être en mesure de voir, et donc s'il y a pas de suggestions, quelqu'un aurait l'esprit de pompage de ces deux sites à travers un test de mise en œuvre de leur propre Ht mlUnit utiliser et voir si elles peuvent obtenir la sortie de base des résultats XML ou texte? Je n'essaie pas de faire quelque chose de fantaisie ici, juste obtenir un texte de base ou une sortie XML des résultats.
Il serait utile de savoir si la mise en œuvre de quelqu'un d'autre fonctionne afin que je puisse continuer à truquer le mien à la fin.
CODE:
import com.gargoylesoftware.htmlunit.html.HtmlPage;
import com.gargoylesoftware.htmlunit.WebClient;
public class test {
public static void main(String[] args) throws Exception {
WebClient client = new WebClient();
System.out.println("webclient loaded");
HtmlPage currentPage = client.getPage("http://www.bing.com/travel/flight/flightSearch?form=FORMTRVLGENERIC&q=flights+from+SLC+to+BKK+leave+07%2F30%2F2010+return+08%2F11%2F2010+adults%3A1+class%3ACOACH&stoc=0&vo1=Salt+Lake+City%2C+UT+%28SLC%29+-+Salt+Lake+City+International+Airport&o=SLC&ve1=Bangkok%2C+Thailand+%28BKK%29+-+Suvarnabhumi+International&e=BKK&d1=07%2F30%2F2010&r1=08%2F11%2F2010&p=1&b=COACH&baf=true");
client.waitForBackgroundJavaScript(10000);
System.out.println("htmlpage init'd");
//System.out.println(currentPage.getTitleText());
String textSource = currentPage.asXml();
System.out.println(textSource);
}
}
Merci!
fils bien d'une arme à feu ... merci! donc est-il la peine d'aller jusqu'à Corrigez les erreurs et les avertissements - tant que je reçois une page, peut-être que cela n'en vaut pas la peine ... –
D'après ce dont je me souviens, c'était juste une information de journalisation, c'est typique de mes tests HtmlUnit, la console crache comme un fou Si la page sort, ne vous inquiétez pas à ce sujet –
Je veux juste confirmer que l'ajout de cette ligne ci-dessus fonctionne vraiment. J'ai eu le même problème aussi - obtenir une erreur qui dit que je charge un contenu JS obsolète pendant le chargement de la page. Puis finalement, lors de la soumission automatique de formulaire, l'erreur est que le contenu JS n'est pas encore disponible. Les mêmes journaux apparaissent toujours, mais au moins le RuntimeException qui est levé et arrête l'exécution entière est parti. Cependant, je pense que c'est seulement parce que le JS qui était en train d'être chargé n'est pas nécessaire pour moi de compléter la saisie et la soumission du formulaire en premier lieu. –