5

मुझे आश्चर्य है कि क्या कोई मौजूदा पुस्तकालय उद्देश्य-सी से उपलब्ध है या पहुंच योग्य है जो मुझे this one जैसे प्रारूपित पृष्ठों को स्क्रैप करने की अनुमति देगा। विशेष रूप से, प्रत्येक तारीख के बगल में सभी तिथियां और सभी पाठ। यदि नहीं, तो ऐसा करने का सबसे अच्छा तरीका क्या होगा? नियमित अभिव्यक्ति? मैंने सुना है कि NSString में इसके लिए पहले से ही अंतर्निहित विधियां हो सकती हैं। क्या ये सच है?स्क्रैपिंग और एक विकिपीडिया को पार करना पृष्ठ

मैं यह देखने के लिए चारों ओर देख रहा था कि स्क्रैपिंग के लिए कोई विकल्प था, जैसे एक्सएमएल फ़ाइल या एपीआई। मुझे एक एपीआई मिली लेकिन केवल एकमात्र ग्राहक जो मैं देखता हूं वह अन्य भाषाओं में हैं और वे केवल पृष्ठों पर सामग्री पोस्ट करने में सक्षम हैं, इसे पुनर्प्राप्त नहीं करते हैं।

संपादित: तो मैं इन कड़ियों में एपीआई के बारे में अधिक जानकारी पाया:

और मैं this request जो कुछ HTML रिटर्न साथ आने के लिए सक्षम था एन्कोडेड टेक्स्ट (वैसे प्रारूप एक्सएमएल है, लेकिन इसमें पेज का टेक्स्ट शामिल है जैसे कि »a href= इत्यादि। मैं दस्तावेज़ों को देखकर देख सकता हूं कि क्या मैं कर सकता हूं ई यह थोड़ा बेहतर हो गया है, अगर नहीं, तो क्या इसे पार्स करने पर कोई सिफारिशें हैं?

संपादित 2: ठीक है तो this doc page करने के लिए धन्यवाद, सरल और स्पष्ट तरीका मैं डेटा पुनः प्राप्त कर लिया है इस constructed link जो कच्चे डेटा रिटर्न (विकि मार्कअप में) प्रासंगिक अनुभाग का उपयोग कर रहा है। हालांकि, मुझे लगता है कि मुझे उस पर विश्लेषण करने की आवश्यकता होगी, हालांकि अगर यह वास्तव में मामला है, तो यह पूरे लेख की तुलना में बहुत आसान होना चाहिए।

क्या किसी के पास उद्देश्य-सी में निम्नलिखित विकी मार्कअप को पार्स करने पर कोई अनुशंसाएं हैं?

==Events== 
* [[710]] – [[Saracen]] invasion of [[Sardinia]]. 
*[[1275]] – Traditional founding of the city of [[Amsterdam]]. 
*[[1682]] – [[Philadelphia]], [[Pennsylvania]] is founded. 

मैं क्या है होने अंत करना चाहते हैं, मैं एक NSDictionary या इसी तरह के संग्रह है कि जानकारी के साथ स्निपेट के साथ तारीख स्टोर करेगा लगता है। धन्यवाद!

उत्तर

1

मैं मिश्रित HTML डेटा स्ट्रीम में लक्षित डेटा निष्कर्षण के लिए रेगेक्स का सुझाव देने जा रहा हूं।

फोन पर पहले से ही RegEx पुस्तकालय हैं, वे छिपे हुए हैं - आप उन्हें RegexKitLite का उपयोग करके कुछ सरल कॉल के साथ बेनकाब कर सकते हैं (स्क्रॉल करना और प्रकाश संस्करण प्राप्त करना सुनिश्चित करें)। यह एनएसएसटींग पर कुछ एक्सटेंशन के साथ एक वर्ग होने के समाप्त होता है जो आपको रेगेक्स करने देता है, फिर आप दो कैप्चर मैचों के साथ एक रेगेक्स परिभाषित करेंगे - संख्या के लिए एक और सामग्री के लिए एक, कई गैर-कब्जे वाले मैचों के साथ संलग्न और मध्यवर्ती टैग। भले ही यह मानक रेगेक्स का "लाइट" संस्करण है, यह सिल्ल आपको किसी भी योग्यता के बारे में बताता है।

एपीआई दृष्टिकोण वादा कर रहा है लेकिन एक बार जब आप कच्चे मार्कअप प्राप्त कर लेते हैं तो आपको शायद उस डेटा को पार्स करने के लिए एक समान रेगेक्स दृष्टिकोण लेना होगा। यह अभी भी समझ में आ सकता है अगर यह रेगेक्स जटिलता और डेटा स्थानांतरण समय को कम करता है, लेकिन कोई कारण नहीं है कि आप दोनों दृष्टिकोणों को गठबंधन नहीं कर सकते हैं।

+0

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

+0

वह नया डेटा पार्स करने के लिए बहुत आसान है - मैं स्ट्रिंग रेंज की तलाश करके इसे संभालता हूं जो घटनाओं के बाद शुरू होता है, फिर लाइन के अंत तक ndash के बाद कुछ भी के साथ ब्रैकेट शुद्ध संख्याओं के खिलाफ एक मैच कर रहा है .. तो आपको बस सभी "[" और "]" अक्षरों को बाहर करने की आवश्यकता होगी और आप सभी सेट हो जाएंगे। एचटीएमएल की तुलना में प्रक्रिया करना आसान है, हालांकि सुपर लिंक भारी है। –

+0

धन्यवाद, क्या आप पार्सिंग के संबंध में मेरे बाद के प्रश्न का उत्तर देना चाहते हैं? http://stackoverflow.com/questions/1634012/how-to-parse-some-wiki-markup धन्यवाद! –

0

जो कि किसी भी भाषा में, इसे करने का सबसे निश्चित तरीका नहीं है।

यदि कोई साइट ऑनलाइन अपने डेटा को एक अच्छे तरीके से उजागर करेगी, तो यह विकिपीडिया होगी।

एक्सएमएल, आरडीएफ के रूप में, या यहां तक ​​कि जेएसओएन के रूप में भी एक लेख प्राप्त करने में लग रहा है।

+0

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

3

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

4

API:Data_formats पर वर्णित अनुसार, आपकी क्वेरी के अंत में &format=fmt जोड़ें। आपकी क्वेरी बन जाती है: उदाहरण के लिए, JSON query। आप एक्सएमएल, जेएसओएन, या कई अन्य प्रारूप निर्दिष्ट कर सकते हैं।

आप आसानी से समग्र अनुभागों को पार्स कर सकते हैं, और उसके बाद HTML स्वरूपित आउटपुट को वेबदृश्य में प्रदर्शित कर सकते हैं।

+0

धन्यवाद! हाँ मैंने इसे देखा था, लेकिन लौटाई गई फाइल कच्ची फ़ाइल से बहुत बड़ी है जिसे मैं पुनर्प्राप्त करने में सक्षम था। नकारात्मकता यह है कि यह HTML के बजाय विकी मार्कअप में है, लेकिन मैं लौटाई गई सामग्री को किसी भी तरह से वेबव्यू में प्रस्तुत करने की योजना नहीं बना रहा था। मेरे पास वास्तविक डेटा होगा ताकि मैं आसानी से इसकी प्रस्तुति में हेरफेर कर सकूं। हालांकि मैं प्रतिक्रिया की सराहना करता हूं। –

3

मैंने विभिन्न तरीकों से WP से बहुत सारे डेटा को स्क्रैप किया है। यह प्रारूप कई चीजों पर निर्भर करता है जिसमें किस प्रकार का सबडोमेन जानकारी है और जब इसे दर्ज किया गया था। मुख्य पाठ मुफ्त प्रारूप है और इसे स्क्रैप करने का कोई आसान तरीका नहीं है। इन्फोबॉक्स एक विशेष WP प्रारूप में हैं जो वर्षों से बदल गया है। इसे स्क्रैप करने के लिए डिज़ाइन नहीं किया गया था।

एक डेटाबेस समर्थित WP है जो कुछ और अधिक संरचित है।

अब तक अपने सबसे अच्छे रणनीति डोमेन आप को स्क्रैप करना चाहते हैं में विकिपीडिया संपर्क करने के लिए है - वे डेटाबेस स्वरूप के बारे में पता चल जाएगा और अच्छी तरह से मदद करने में सक्षम हो सकता है - वे निश्चित रूप से चाहते हैं के रूप में वे चाहते हैं मदद करने के लिए अर्थपूर्ण रूप में WP देखें (जैसे डीबीपीडिया - http://dbpedia.org/About)।

2

क्या पाइथन गिनती है? ;) यह उद्देश्य-सी से सुलभ है। और स्क्रैपिंग उद्देश्यों के लिए बहुत अच्छे मॉड्यूल हैं: सुंदर साबुन और/या मशीनीकरण, आप एलएक्सएमएल पर भी विचार कर सकते हैं।

का उपयोग YQL आप:

0

मैं जो निम्नलिखित का उपयोग कर एक स्क्रीन खरोंच करता है एक iPhone एप्लिकेशन मिल गया है डीओएम के खिलाफ XPATH क्वेरी का उपयोग कर वेब से आपको जो भी जानकारी चाहिए, उसे प्राप्त कर सकते हैं।

व्यक्तिगत रूप से मुझे लगता है कि रेगेक्स का उपयोग करने से यह बेहतर है। फिर फिर मैं केवल बहुत ही सरल नियमित अभिव्यक्तियों को जानता हूं।

संबंधित मुद्दे