2010-07-29 15 views
6

मेरे पास पाइथन में एक मध्यवर्ती ज्ञान है। अगर मुझे अजगर में एक वेब क्रॉलर लिखना है, तो मुझे किस चीज का पालन करना चाहिए और मुझे कहां से शुरू करना चाहिए। क्या कोई विशिष्ट टट है? कोई सलाह बहुत मदद की होगी .. धन्यवादपायथन में एक वेब क्रॉलर। मुझे कहां से शुरू करना चाहिए और मुझे क्या करना चाहिए? - मदद की आवश्यकता

उत्तर

3

क्यों existing code की तलाश नहीं है जो आपको पहले से ही चाहिए? यदि आपको स्वयं को बनाने की ज़रूरत है, तो यह अभी भी मौजूदा कोड को देखने और इसे बनाने के लिए इसे डिज़ाइन करने के लायक है।

+0

यह सिर्फ अभी भी एक शिक्षार्थी है और मैं केवल कुछ चीजों को समझूंगा यदि मुझे मूल बातें मिलती हैं, तो सही तरीका। आपकी मदद के लिए धन्यवाद हालांकि, मैं अब कोड देख रहा हूं :) –

5

आपको निश्चित रूप से एक HTML पार्सिंग लाइब्रेरी की आवश्यकता होगी। इसके लिए आप सुंदर सूप का उपयोग कर सकते हैं। आप यूआरएल लाने और ऑफलाइन पेज में लौटाए गए एचटीएमएल को प्रोसेस करने के लिए बहुत सारे नमूने और ट्यूटोरियल पा सकते हैं: http://www.crummy.com/software/BeautifulSoup/

+0

धन्यवाद ..:) से शुरू करने के लिए, मुझे यह जानने में दिलचस्पी है कि पुस्तकालयों/मॉड्यूल को आयात करना चाहिए? इस के साथ? मेरा उद्देश्य एक साधारण क्रॉलर लिखना है (बहु थ्रेडिंग के बिना, यदि वह मायने रखता है) –

+0

सुंदर सूप के साथ काम करना बहुत आसान है। "सुंदर सूप आयात से सुंदर सूप; सूप = सुंदर सूप (" "" ... "" " –

1

एक और अच्छी लाइब्रेरी जो आपको चाहिए वह पार्सिंग फीड्स के लिए है। अब जब आपके पास यूआरएल के लिए सुंदर सूप है, तो आप फ़ीड्स के लिए फीडपार्सर का उपयोग कर सकते हैं। http://www.feedparser.org/

+0

स्टैक ओवरफ्लो (एसओ) में आपका स्वागत है। अगली बार, केवल नई जानकारी के साथ अपना मौजूदा उत्तर संपादित करें :) –

7

मैं दृढ़ता से Scrapy पर एक नज़र डालने की सलाह देता हूं। लाइब्रेरी सुंदर सूप, या आपके पसंदीदा एचटीएमएल पार्सर के साथ काम कर सकती है। मैं व्यक्तिगत रूप से lxml.html के साथ इसका उपयोग करता हूं।

बॉक्स से बाहर

, आप मुक्त करने के लिए कई चीजें प्राप्त करते हैं:

  • समवर्ती अनुरोधों, मुड़ के लिए धन्यवाद
  • CrawlSpider वस्तुओं रिकर्सिवली पूरी साइट में लिंक के लिए देखो
  • डेटा निष्कर्षण & के महान जुदाई प्रसंस्करण, जो समांतर प्रसंस्करण क्षमताओं में से अधिकांश बनाता है
+1

+1 अनुशंसा के लिए scrapy –

5

यदि आप अभी भी लिखना चाहते हैं स्क्रैच से एक, आप mechanize मॉड्यूल का उपयोग करना चाहेंगे। इसमें ब्राउज़र को अनुकरण करने के लिए आवश्यक सब कुछ शामिल है, और यूआरएल लाने के लिए स्वचालित करें। मैं अनावश्यक हो जाऊंगा और आपके द्वारा प्राप्त किए गए किसी भी एचटीएमएल को पार्स करने के लिए सुंदर सूप भी कहूंगा। अन्यथा, मैं स्केपर के साथ जाऊंगा ...

2

यह आपकी आवश्यकताओं पर निर्भर करता है। यदि आपको मूल वेबक्रैपिंग की आवश्यकता है, तो मशीनीकरण + सुंदर सूप इसे बना देगा।

यदि आपको जावास्क्रिप्ट को प्रस्तुत करने की आवश्यकता है, तो मैं सेलेनियम, या spynner के लिए जाऊंगा। दोनों महान हैं।

2

आईबीएम डेवलपर वर्क्स इस https://www.ibm.com/developerworks/linux/library/l-spider/#N101C6 पर एक लेख है। आप उन पुस्तकालयों का उपयोग करना चाहेंगे जो दूसरों ने सुझाए हैं, लेकिन यह आपको प्रवाह का एक समग्र विचार देगा।

-1
import re, urllib 

textfile = file('depth_1.txt','wt') 
print "Enter the URL you wish to crawl.." 
print 'Usage - "http://dynamichackerboys.blogspot.in" <-- With the double quotes' 
myurl = input("@> ") 
for i in re.findall('''href=["'](.[^"']+)["']''', urllib.urlopen(myurl).read(), re.I): 
     print i 
     for ee in re.findall('''href=["'](.[^"']+)["']''', urllib.urlopen(i).read(), re.I): 
       print ee 
       textfile.write(ee+'\n') 
textfile.close() 

प्रिंट 'उपयोग - "http://dynamichackerboys.blogspot.in" < - दोहरे उद्धरण चिह्नों के साथ' myurl = इनपुट ("@>") re.findall में मैं के लिए ('' 'href = "' [" ' ] '' ', urllib.urlopen (myurl) .read(), re.I): ie12 re1findall (' 'href =' ' (i) .read(), re.I): प्रिंट ee textfile.write (ee + '\ n') textfile.close()

वेबसाइट में रेंगने के लिए

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