8

मैं Greasemonkey के साथ एक साइट को क्रॉल करना चाहता हूं और आश्चर्य करता हूं कि क्या GM_setValue के साथ अस्थायी रूप से मूल्यों को स्टोर करने का बेहतर तरीका है।Greasemonkey आधारित क्रॉलर के लिए डेटा स्टोर करने का सबसे अच्छा तरीका?

मैं जो करना चाहता हूं वह है सोशल नेटवर्क में मेरे संपर्कों को क्रॉल करना और ट्विटर यूआरएल को उनके प्रोफाइल पेज से निकालना।

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

हालांकि, मैं स्टोरेज विकल्प से बहुत खुश नहीं हूं। शायद एक बेहतर तरीका है?

मैंने उपयोगकर्ता प्रोफाइल को वर्तमान पृष्ठ में डालने पर विचार किया है ताकि मैं उन्हें एक ही स्क्रिप्ट इंस्टेंस के साथ संसाधित कर सकूं, लेकिन मुझे यकीन नहीं है कि XMLHttpRequest सामान्य उपयोगकर्ता द्वारा शुरू किए गए अनुरोधों से अविश्वसनीय दिखता है या नहीं।

उत्तर

4

मेरे पास एक समान प्रोजेक्ट है जहां मुझे वेबसाइट से पूरी तरह से (चालान लाइन डेटा) प्राप्त करने की आवश्यकता है, और इसे एक लेखा डेटाबेस में निर्यात करें।

आप एक .aspx (या PHP आदि) बैक एंड बना सकते हैं, जो POST डेटा को संसाधित करता है और इसे डेटाबेस में संग्रहीत करता है।

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

(वैकल्पिक रूप से आप पृष्ठ पर एक सबमिट बटन जोड़ सकते हैं, जिससे आप डेटाबेस को सबमिट करने से पहले फॉर्म मानों की जांच कर सकते हैं)।

1

क्या आपने Google गियर्स को माना है? इससे आपको स्थानीय SQLite डेटाबेस तक पहुंच मिल जाएगी, जिसमें आप बड़ी मात्रा में जानकारी स्टोर कर सकते हैं।

2

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

क्या आप जो भी कर रहे हैं, उसे पृष्ठ पर जावास्क्रिप्ट को निष्पादित करने की आवश्यकता है? यदि ऐसा है, तो आप पर्ल और WWW::Mechanize::Plugin::JavaScript का उपयोग करने पर विचार करना चाहेंगे। अन्यथा, मैं अनुशंसा करता हूं कि आप यह सब एक साधारण पायथन लिपि में करें। आप urllib2 मॉड्यूल पर एक नज़र डालना चाहते हैं। उदाहरण के लिए, निम्नलिखित कोड पर एक नज़र डालें (ध्यान दें कि यह cookielib का उपयोग करता है कुकी हैं, जो आप की जरूरत सबसे अधिक संभावना होगी समर्थन करने के लिए अपनी स्क्रिप्ट की आवश्यकता है यदि आप किसी साइट में प्रवेश करने के लिए):

import urllib2 
import cookielib 
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookielib.CookieJar())) 
response = opener.open("http://twitter.com/someguy") 
responseText = response.read() 

तो फिर तुम क्या कर सकते हैं नियमित अभिव्यक्तियों का उपयोग करके आप जो भी प्रसंस्करण चाहते हैं।

+0

Greasemonkey की इच्छा का कारण यह है कि पृष्ठ को क्रॉल किया जाना वास्तव में रोबोटों को स्वीकार नहीं करता है। Greasemonkey क्रॉलर वैध दिखने के लिए सबसे आसान तरीका की तरह लग रहा था। –

1

Greasemonkey चाहने के लिए कारण यह है कि पेज क्रॉल करने वास्तव में रोबोट का अनुमोदन नहीं करता है। क्रैस्लर को वैध बनाने के लिए Greasemonkey सबसे आसान तरीका की तरह लग रहा था।

असल में ब्राउज़र के माध्यम से अपने क्रॉलर को टैन करना यह अधिक वैध नहीं बनाता है। आप अभी भी साइट के उपयोग की शर्तों को तोड़ रहे हैं! डब्ल्यूडब्ल्यूडब्लू :: उदाहरण के लिए मैकेनाइजेशन आपके उपयोगकर्ता एजेंट स्ट्रिंग को 'स्पूफ' के लिए समान रूप से उपयुक्त है, लेकिन यह और क्रॉलिंग है, यदि साइट मकड़ियों/क्रॉलर को अवैध नहीं देती है, तो अवैध!

0

Greasemonkey की इच्छा का कारण यह है कि पृष्ठ को क्रॉल किया जाना वास्तव में रोबोटों को स्वीकार नहीं करता है। Greasemonkey क्रॉलर वैध दिखने के लिए सबसे आसान तरीका की तरह लग रहा था।

मुझे लगता है कि यह क्रॉलर को वैध बनाने के लिए कल्पना करने का सबसे कठिन तरीका है। एक HTTP ब्राउज़र को स्पूफ करना HTTP हेडर की कुछ बुनियादी समझ के साथ मामूली रूप से आसान है।

इसके अलावा, कुछ साइटों में ह्यूरिस्टिक्स हैं जो मकड़ियों की तरह व्यवहार करने वाले ग्राहकों की तलाश करते हैं, इसलिए बस ब्राउज़र की तरह अनुरोध करने का मतलब यह नहीं है कि आप यह नहीं जान पाएंगे कि आप क्या कर रहे हैं।

+0

मुझे नहीं लगता कि सही हेडर सेट करना पर्याप्त है। आपको छवियों को लोड करना होगा, AJAX अनुरोधों को ट्रिगर करना होगा और क्या नहीं। –

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