2012-04-07 3 views
8

का उपयोग कर जावास्क्रिप्ट-जेनरेट डेटा को स्क्रैप करना मैं पाइथन का उपयोग करके निम्नलिखित यूआरएल के कुछ डेटा को स्क्रैप करना चाहता हूं। http://www.hankyung.com/stockplus/main.php?module=stock&mode=stock_analysis_infomation&itemcode=078340पायथन

यह कंपनी की जानकारी का सारांश है।

जो मैं स्क्रैप करना चाहता हूं वह पहले पृष्ठ पर नहीं दिखाया गया है। "재무 제표" नामक टैब पर क्लिक करके, आप वित्तीय विवरण तक पहुंच सकते हैं। और नामित टैब पर क्लिक कैश फ्लो "

। मैं स्क्रैप करना चाहते हैं" "현금 흐름표 ', तो आप उपयोग कर सकते हैं" कैश फ्लो "डेटा।

हालांकि, नकदी प्रवाह डेटा यूआरएल भर में जावास्क्रिप्ट द्वारा उत्पन्न होता है। नीचे दिए गए लिंक है कि यूआरएल जो छिपा हुआ है, http://stock.kisline.com/compinfo/financial/main.action?vhead=N&vfoot=N&vstay=&omit=&vwidth=

नकदी प्रवाह डेटा इस यूआरएल के लिए कुछ विकल्प मान और कुकी जमा करके उत्पन्न होता है।

आप कथित रूप में, itemcode पहले कड़ी में 078,340 = शेयर कोड और इसका मतलब है 1680 शेयर हैं जो मैं नकदी प्रवाह डेटा इकट्ठा करना चाहता हूं चींटी इसे एक पाश संरचना बनाते हैं।

क्या नकद प्रवाह डेटा स्क्रैप करने का कोई अच्छा तरीका है? मैंने स्केपर की कोशिश की लेकिन मेरे पहले से उपयोग किए जा रहे मेरे दूसरे स्क्रैपिंग कोड से निपटने में स्केपर मुश्किल है।

+0

क्या सर्वर से AJAX द्वारा खींचा गया डेटा है या किसी भी तरह एचटीएमएल के भीतर संग्रहीत किया गया है (जैसे जेएस चर या भीतर 'डेटा -' में)? – Tadeck

+1

सेवा की शर्तें आपको ऐसा करने की अनुमति देती हैं? – luke14free

+0

टेडैक, डेटा सर्वर से खींचा गया है। – trigger

उत्तर

1

आप पेज की सामग्री जो AJAX के साथ अद्यतन किया जाता है पलायन करने के लिए की जरूरत है और आप इस AJAX के इंटरफेस मैं इस काम के लिए सेलेनियम ब्राउज़र स्वचालक का प्रयोग करेंगे के नियंत्रण में नहीं हैं, तो:

http://code.google.com/p/selenium/

  • सेलेनियम अजगर बाइंडिंग है

  • तो यह करते हैं और 100% एक ही बात को स्क्रैप के रूप में आप अपने खुद के आँखों से देख सकते यह एक वास्तविक ब्राउज़र उदाहरण शुरूआत

  • प्राप्त एचटीएमएल सेलेनियम एपीआई

  • उपयोग lxml + xpath/सीएसएस दस्तावेज़ के बाहर प्रासंगिक भागों पार्स आउट कर चयनकर्ताओं के माध्यम से AJAX के अपडेट के बाद दस्तावेज़ सामग्री

+0

बहुत बहुत धन्यवाद। मैं सेलेनियम कोशिश कर रहा हूँ। – trigger

+0

क्या मैं अंत में इस lxml + xpath भाग के साथ jquery को प्रतिस्थापित कर सकता हूं (और बाकी चरणों का पालन करें)? – abbood

+0

सेलेनियम अपने स्वयं के सीएसएस चयनकर्ता इंजन (जो शायद अंतर्निहित ब्राउज़र का उपयोग करता है) के साथ आता है, इसलिए आपको न तो jQuery और न ही lxml की आवश्यकता नहीं है –

9

वहाँ भी dryscape (एक पुस्तकालय द्वारा लिखित है मैं, इसलिए सिफारिश थोड़ा पक्षपातपूर्ण है, जाहिर है :) जो आसपास के नेविगेट करने के लिए एक तेज़ वेबकिट-आधारित मेमोरी ब्राउज़र का उपयोग करता है। यह जावास्क्रिप्ट को भी समझता है, लेकिन सेलेनियम की तुलना में बहुत अधिक हल्का है।

+0

बहुत बहुत धन्यवाद। मैं इसे आजमाऊंगा – trigger