मैं नहीं, मेरे जीवन के लिए, रिग अप इस साइट हड़पने के लिए HtmlUnit कर सकते हैं:HtmlUnit के लिए असंभव साइट?
मुझे यकीन है कि यह पृष्ठभूमि में चल रहा लिपियों के विशाल मात्रा के साथ क्या करना है कर रहा हूँ। शायद इन स्क्रिप्ट को पूरी तरह से लोड करने के लिए पर्याप्त समय नहीं दिया जा रहा है?
मैंने बस bing.com/travel को पकड़ने की कोशिश की है, और कोई सफलता नहीं है। यह नए HtmlPage क्लाइंट के getPage फ़ंक्शन पर टूट रहा है।
उत्पादन runtimeErrors की अधिकता ("इस कार्य को पूरा करने के लिए आवश्यक डेटा अभी उपलब्ध नहीं है"), एक ही SOURCENAME ("http://www.bing.com/travel/jsxc.vjs?a=common&v=5.5.0-1278007084280")
फिर एक जोड़े को अपवाद एक लापता के लिए फेंक दिया के लिए सभी "(देता है "bing.com पर एक जोड़े लिपियों में।
तो यह जावास्क्रिप्ट कहता है, फिर अचानक समाप्त होता है।
मुझे पता है यह समस्याओं का एक मुट्ठी भर है कि दूसरों को देखने के लिए सक्षम नहीं हो सकता है हो सकता है, और देखते हैं, इसलिए यदि कोई सुझाव नहीं, क्या कोई इन दोनों साइटों को अपने स्वयं के एचटी के परीक्षण कार्यान्वयन के माध्यम से पंप करेगा mlUnit उपयोग करें और देखें कि क्या वे XML या टेक्स्ट परिणामों का मूल आउटपुट प्राप्त कर सकते हैं? मैं यहाँ कुछ भी फैंसी करने की कोशिश नहीं कर रहा हूं, बस परिणामों के कुछ बुनियादी पाठ या एक्सएमएल आउटपुट प्राप्त करें।
यह जानना आसान होगा कि किसी और का कार्यान्वयन काम करता है, इसलिए मैं जूरी-रिगिंग खान को पूरा करने के लिए रख सकता हूं।
कोड:
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);
}
}
धन्यवाद!
एक बंदूक की अच्छी तरह से बेटे ... धन्यवाद! तो इसके लायक करने के लिए के माध्यम से जा रहा है त्रुटियों और चेतावनियों को ठीक करें? जब तक मुझे कोई पृष्ठ नहीं मिलता है, हो सकता है कि यह प्रयास के लायक नहीं है ... –
जो मुझे याद है उससे बहुत कुछ जानकारी लॉगिंग थी। यह मेरे एचटीएमएल यूनिट परीक्षणों की विशिष्ट है, कंसोल पागल की तरह यदि पृष्ठ निकलता है, तो इसके बारे में चिंता न करें। –
मैं सिर्फ यह पुष्टि करना चाहता हूं कि ऊपर दी गई रेखा वास्तव में काम करती है। मुझे भी वही समस्या हो रही है - एक त्रुटि प्राप्त करना जो कहता है कि मैं पृष्ठ लोड के दौरान एक अप्रचलित जेएस सामग्री लोड कर रहा हूं। फिर अंत में, स्वचालित फॉर्म सबमिशन के दौरान, त्रुटि यह है कि जेएस सामग्री अभी तक उपलब्ध नहीं है। वही लॉग अभी भी दिखाई देते हैं, लेकिन कम से कम रनटाइम अपवाद जो फेंक दिया जाता है और पूरे निष्पादन को रोकता है। हालांकि, मुझे लगता है कि ऐसा इसलिए है क्योंकि जेएस जो लोड किया जा रहा था, मेरे लिए फॉर्म इनपुट और सबमिशन को पूरा करने के लिए आवश्यक नहीं है। –