2009-04-17 19 views
12

हाय मैं एक डेस्कटॉप ऐप (सी # प्रोब) बनाना चाहता हूं जो किसी तृतीय पक्ष वेब पेज पर किसी फॉर्म को स्क्रैप या हेरफेर करता है। असल में मैं डेस्कटॉप ऐप में फॉर्म में अपना डेटा दर्ज करता हूं, यह तीसरी पार्टी की वेबसाइट पर जाता है और स्क्रिप्ट या पृष्ठभूमि में जो भी हो, वहां मेरा डेटा दर्ज करता है (मेरे लॉगिन के साथ) और मेरे लिए सबमिट बटन पर क्लिक करता है। बस ब्राउज़र को लोड करने से बचना चाहते हैं!सबसे अच्छी स्क्रीन स्क्रैपिंग भाषा क्या है?

इस क्षेत्र में ज्यादा (कोई भी!) काम नहीं किया गया था, मुझे आश्चर्य था कि पर्ल, पायथन, रूबी आदि जैसी एक पटकथा भाषा मुझे ऐसा करने की अनुमति देगी? या बस सी # और .net का उपयोग कर सभी स्क्रैपिंग करें? कौन सा सबसे अच्छा IYO है?

मैं स्क्रिप्ट सोच रहा था क्योंकि अलग-अलग प्लेटफॉर्म पर अनुप्रयोगों से कुछ स्क्रिप्ट में हुक करने की आवश्यकता हो सकती है (उदाहरण के लिए सिम्बियन मोबाइल जहां मैं इसे सी # में विकसित नहीं कर पाऊंगा क्योंकि मैं डेस्कटॉप संस्करण चाहता हूं)।

यह एक वेब ऐप नहीं है अन्यथा मैं मूल साइट का भी उपयोग कर सकता हूं। मुझे एहसास है कि यह सभी व्यर्थ लगता है लेकिन इस विशिष्ट रूप के लिए स्वचालन मेरे लिए एक वास्तविक समय बचतकर्ता होगा।

+1

इस वेब scraping नहीं स्क्रीन scraping के बारे में एक सवाल है। कृपया इसे पुनः प्राप्त करें। –

+1

जोड़ा गया वेब-स्क्रैपिंग टैग। स्क्रीन-स्क्रैपिंग टैग को नहीं हटाया। –

उत्तर

2

आईएमओ पर्ल नियमित अभिव्यक्ति कार्यक्षमता में निर्मित और पाठ में हेरफेर करने की क्षमता में स्क्रीन स्क्रैपिंग के लिए यह एक बहुत अच्छा दावेदार बन जाएगा।

1

पीएचपी अपनी स्क्रीन scraping जरूरतों के लिए उपयुक्त की तुलना में अधिक है इसकी अच्छी Perl-Compatible Regex support और cURL library.

4

सी # की वजह से एक अच्छा दावेदार है। .NET की Regex कार्यक्षमता वास्तव में अच्छा है। हालांकि, इस तरह के एक साधारण कार्य के साथ, आपको ऐसी भाषा खोजना मुश्किल होगा जो आप अपेक्षाकृत आसानी से नहीं करते हैं। ध्यान दें कि आप पहले ही सी # में प्रोग्रामिंग कर रहे हैं, मैं इसके साथ छड़ी कहूंगा।

निर्मित स्क्रीन स्क्रैपिंग कार्यक्षमता भी शीर्ष पायदान है।

26

BeautifulSoup पर नज़र डालें, अत्यधिक अनुशंसा की जाती है।

उदाहरण के लिए, options-for-html-scraping देखें। यदि आपको इस कार्य के लिए प्रोग्रामिंग भाषा चुनने की आवश्यकता है, तो मैं Python कहूंगा।

अपने प्रश्न का एक और सीधा समाधान, वेब ब्राउज़िंग के लिए एक सरल पटकथा भाषा twill देखें।

6

मैं स्क्रैपिंग के लिए सी # का उपयोग करता हूं। सहायक HtmlAgilityPack पैकेज देखें। पृष्ठों को पार्स करने के लिए, मैं या तो XPATH या नियमित अभिव्यक्तियों का उपयोग करता हूं। यदि आपको आवश्यकता हो तो .NET कुकीज़ को आसानी से संभाल सकता है।

मैंने एक छोटी कक्षा लिखी है जो वेबरक्वेट बनाने, इसे भेजने, प्रतिक्रियाओं की प्रतीक्षा करने, कुकीज़ को बचाने, नेटवर्क त्रुटियों को संभालने और पुन: निर्माण करने आदि के सभी विवरण लपेटती है - अंत परिणाम यह है कि ज्यादातर स्थितियों के लिए मैं बस "GetRequest \ PostRequest" को कॉल कर सकता हूं और एक HTML दस्तावेज़ वापस प्राप्त कर सकता हूं।

4

आप नेट एचटीएमएल चपलता पैक का उपयोग कर की कोशिश कर सकते:

http://www.codeplex.com/htmlagilitypack

"यह एक चुस्त HTML पार्सर कि पढ़ने बनाता है/डोम लिख सकते हैं और समर्थन करता है, सादा XPATH या XSLT (आप वास्तव में डॉन है XPATH और न ही XSLT को इसका उपयोग करने के लिए समझना है, चिंता न करें ...)। यह एक .NET कोड लाइब्रेरी है जो आपको "वेब से बाहर" HTML फ़ाइलों को पार्स करने की अनुमति देती है। पार्सर "असली" के साथ बहुत सहिष्णु है दुनिया "विकृत एचटीएमएल। ऑब्जेक्ट मॉडल सिस्टम.एक्सएमएल का प्रस्ताव करता है, लेकिन एचटीएमएल दस्तावेजों (या धाराओं) के लिए बहुत समान है।"

0

या सी # में WebClient और कुछ स्ट्रिंग जोड़तोड़ के साथ चिपके रहते हैं।

2

रूबी बहुत अच्छा है! ... अपने Hpricot/मशीनीकरण

2

ग्रूवी बहुत अच्छा है की कोशिश करो।

उदाहरण : http://groovy.codehaus.org/Testing+Web+Applications 0123: http://froth-and-java.blogspot.com/2007/06/html-screen-scraping-with-groovy.html

ग्रूवी और HtmlUnit भी एक बहुत अच्छा मैच हैएचटीएमएल्यूनिट जावास्क्रिप्ट समर्थन के साथ एक पूर्ण ब्राउज़र अनुकरण करेगा।

1

HTML Agility Pack (c#)

  1. XPath borked है, जिस तरह से एचटीएमएल यह xml अनुरूप यह टैग छोड़ देंगे बनाने के लिए साफ किया जाता है और आप इसे काम करने के लिए प्राप्त करने के लिए अभिव्यक्ति को समायोजित करने के लिए है।
  2. सरल

Mozilla Parser (Java)

  1. ठोस XPath सहायता का उपयोग करने
  2. आप वातावरण चर सेट करने के लिए इससे पहले कि यह काम करेगा जो एक दर्द
  3. org.dom4j.Node और के बीच कास्टिंग है org.w3c.dom.Node अलग-अलग गुण प्राप्त करने के लिए वास्तविक दर्द
  4. गैर-मानक HTML पर मर जाता है (0.3 फ़िक्स थि मैं < = list_size; i ++) कि

चारों ओर पाने के लिए रों)
  • XPath
  • समस्याओं एक NodeList

    उपयोग एक में पर नोड्स डेटा तक पहुँचने के लिए सबसे अच्छा समाधान के लिए (i = 1 int

    Beautiful Soup (Python)

    मैं ज्यादा अनुभव नहीं है, लेकिन यहाँ है कि मैं क्या पाया है

    1. कोई XPath समर्थन एचटीएमएल

    pathing को

  • अच्छा इंटरफ़ेस मैं मोज़िला एचटीएमएल पार्सर

  • 0

    मैं दूसरा अजगर (या ब्यूटीफुल सूप) के लिए सिफारिश पसंद करते हैं। मैं वर्तमान में पाइथन का उपयोग कर एक छोटी स्क्रीन-स्क्रैपिंग प्रोजेक्ट के बीच में हूं, और पाइथन 3 की कुकी प्रमाणीकरण (कुकीज और urllib के माध्यम से) की स्वचालित हैंडलिंग चीजों को बहुत सरल बना रही है। पाइथन उन सभी उन्नत सुविधाओं का समर्थन करता है जिनकी आपको आवश्यकता हो सकती है (जैसे regexes), साथ ही इस तरह की परियोजनाओं को संभालने में सक्षम होने का लाभ होने के कारण (निम्न स्तर की सामग्री से निपटने में बहुत ज्यादा ओवरहेड नहीं)। यह अपेक्षाकृत पार मंच भी है।

    1

    हिमाचल प्रदेश की वेब भाषा (पूर्व WEBL) पर एक नज़र डालें:)

    यहाँ Keplar ब्लॉग पर कुछ उदाहरण, runnable कोड है।

    http://en.wikipedia.org/wiki/Web_Language

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

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