2011-07-21 9 views
7

के साथ अमेज़ॅन में लॉग इन नहीं कर सकता मैं रूबी मणि मैकेनाइजेशन का उपयोग करके अमेज़ॅन में लॉगिन करने का प्रयास कर रहा हूं। मैं हमेशा बिना किसी त्रुटि संदेश के साइन इन पेज पर लात मारता हूं। मैं सोच रहा हूं कि यह मैकेनाइजेशन के साथ एक बग है या अगर अमेज़ॅन इस तरह की पहुंच को अवरुद्ध करता है। मेरे पास नीचे कोड है कि आप परीक्षण करने के लिए irb कर सकते हैं।रूबी मैकेनाइजेशन

@mechanizer = Mechanize.new 

@mechanizer.user_agent_alias = 'Mac Safari' 

@page = @mechanizer.get("https://www.amazon.com/ap/signin?_encoding=UTF8&openid.assoc_handle=usflex&openid.return_to=https%3A%2F%2Fwww.amazon.com%2Fgp%2Fyourstore%3Fie%3DUTF8%26ref_%3Dpd_irl_gw&openid.mode=checkid_setup&openid.ns=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0&openid.claimed_id=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0%2Fidentifier_select&openid.pape.max_auth_age=0&openid.ns.pape=http%3A%2F%2Fspecs.openid.net%2Fextensions%2Fpape%2F1.0&openid.identity=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0%2Fidentifier_select") 

form = @page.form_with(:id => "ap_signin_form") 

field = form.field_with(:name => "email") 
field.value = "[email protected]" 

radiobutton = form.radiobutton_with(:name => 'create', :value => '0') 
radiobutton.check 

button = form.button_with(:id => "signInSubmit") 

@page = form.submit button 

किसी भी मदद के लिए धन्यवाद।

उत्तर

8

इस प्रयास करें,

#!/usr/bin/env ruby 

require "rubygems" 
require "mechanize" 

class AmazonCrawler 
    def initialize 
    @agent = Mechanize.new do |agent| 
     agent.user_agent_alias = 'Mac Safari' 
     agent.follow_meta_refresh = true 
     agent.redirect_ok = true 
    end 
    end 

    def login 
    login_url = "https://www.amazon.com/ap/signin?_encoding=UTF8&openid.assoc_handle=usflex&openid.claimed_id=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0%2Fidentifier_select&openid.identity=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0%2Fidentifier_select&openid.mode=checkid_setup&openid.ns=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0&openid.ns.pape=http%3A%2F%2Fspecs.openid.net%2Fextensions%2Fpape%2F1.0&openid.pape.max_auth_age=0&openid.return_to=https%3A%2F%2Fwww.amazon.com%2Fgp%2Fyourstore%2Fhome%3Fie%3DUTF8%26ref_%3Dgno_signin" 
    @agent.get(login_url) 
    form = @agent.page.forms.first 
    form.email = "[email protected]" 
    form['ap_signin_existing_radio'] = "1" 
    form.password = "password" 
    dashboard = @agent.submit(form) 
    File.open('dashboard.html', 'w') {|file| file << dashboard.body } 
    end 
end 

AmazonCrawler.new.login 

mechanize documentation कुछ शांत उदाहरण है। यह cheat sheet त्वरित संदर्भों के लिए भी आसान है।

+0

मैं कुछ ऐसा करने की कोशिश कर रहा हूं लेकिन मुझे बहुत सफलता नहीं मिल रही है। ऊपर लिखा गया कोड अभी भी आपको लॉगिन पृष्ठ पर रीडायरेक्ट करेगा। कोई विचार? – fffanatics

+0

मैं भी जानना चाहता हूं –

+0

@fffanatics, @Zack मैंने फ़ाइल को फ़ाइल में प्रिंट करने के लिए कोड अपडेट किया है। सुनिश्चित करें कि आप अपने अमेज़ॅन उपयोगकर्ता प्रमाण-पत्र से मेल खाने के लिए 'form.email' और' form.password' के मानों को बदल दें। यह अभी भी मेरे लिए काम कर रहा है। –

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