मैं अपने याहू खाते में एक यूबंटू सर्वर पर चल रहे स्क्रिप्ट से लॉगिन करना चाहता हूं। मैंने मैकेनाइजेशन के साथ अजगर का उपयोग करने की कोशिश की है, लेकिन मेरी योजना में एक दोष है।यूबंटू सर्वर से प्रोग्रामिंग रूप से लॉगिन करने के लिए कैसे करें
यह वह समय है जो मेरे पास है।
loginurl = "https://login.yahoo.com/config/login"
br = mechanize.Browser()
cj = cookielib.LWPCookieJar()
br.set_cookiejar(cj)
br.set_handle_equiv(True)
br.set_handle_gzip(True)
br.set_handle_redirect(True)
br.set_handle_referer(True)
br.set_handle_robots(False)
br.set_handle_refresh(mechanize._http.HTTPRefreshProcessor(), max_time=1)
br.addheaders = [('User-agent', 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/2008071615 Fedora/3.0.1-1.fc9 Firefox/3.0.1')]
r = br.open(loginurl)
html = r.read()
br.select_form(nr=0)
br.form['login']='[mylogin]'
br.form['passwd']='[mypassword]'
br.submit()
print br.response().read()
मुझे प्राप्त प्रतिक्रिया बोल्ड लाल टेक्स्ट पढ़ने के साथ एक याहू लॉगिन पृष्ठ है। "जावास्क्रिप्ट को आपके ब्रोसर पर सक्षम होना चाहिए" या कुछ ऐसा ही है। मैकेनाइज डॉक्स पर एक अनुभाग है जो जेएस के साथ कुकीज़ बनाने वाले पृष्ठों का उल्लेख करता है, लेकिन सहायता पृष्ठ एक HTTP 400 (केवल मेरी किस्मत)
यह पता लगाने के लिए कि जावास्क्रिप्ट क्या करता है और फिर इसे मैन्युअल रूप से बहुत कुछ लगता है मुश्किल कार्य। मैं किसी भी उपकरण/भाषा पर स्विच करने के लिए काफी इच्छुक हूं, जब तक कि यह एक उबंटू सर्वर पर चल सके। भले ही इसका मतलब लॉगिन के लिए एक अलग टूल का उपयोग करना है और फिर लॉग इन कुकी को मेरी पायथन स्क्रिप्ट पर वापस लेना है। किसी भी मदद/सलाह की सराहना की।
अद्यतन:
मैं याहू एपीआई
मैं भी scrapy साथ की कोशिश की है का उपयोग नहीं करना चाहते हैं, लेकिन मैं एक ही समस्या इसलिए होती है
मेरे scrapy लगता है स्क्रिप्ट
class YahooSpider(BaseSpider):
name = "yahoo"
start_urls = [
"https://login.yahoo.com/config/login?.intl=us&.lang=en-US&.partner=&.last=&.src=&.pd=_ver%3D0%26c%3D%26ivt%3D%26sg%3D&pkg=&stepid=&.done=http%3a//my.yahoo.com"
]
def parse(self, response):
x = HtmlXPathSelector(response)
print x.select("//input/@value").extract()
return [FormRequest.from_response(response,
formdata={'login': '[my username]', 'passwd': '[mypassword]'},
callback=self.after_login)]
def after_login(self, response):
# check login succeed before going on
if response.url == 'http://my.yahoo.com':
return Request("[where i want to go next]",
callback=self.next_page, errback=self.error, dont_filter=True)
else:
print response.url
self.log("Login failed.", level=log.CRITICAL)
def next_page(sekf, response):
x = HtmlXPathSelector(response)
print x.select("//title/text()").extract()
scrapy स्क्रिप्ट सिर्फ आउटपुट "https://login.yahoo.com/config/login" ...... बू
क्या इस तरह की चीज़ के लिए याहू एपीआई नहीं हैं? –
हाँ लेकिन इसकी सीमित कार्यक्षमता दुर्भाग्यवश – DrLazer
मुझे आपकी स्क्रिप्ट का उपयोग करने में कोई समस्या नहीं है। – xbb