2013-07-31 5 views
0

им пишет веб-бот и ив столкнулся с проблемойURLLIB Запрос работает только для одного пользователя

в основном журналы бот в покупаешь и продает акции в игре он работает, когда я положил в моем имени пользователя и передать, но когда я положить в различных один я получаю сообщение об ошибке о том, ив был направлен от неправильной страницы, даже если я использовал Referer заголовок

Вот мой Войти код:

def Login(self): 
     while True: 
      self.cookieJar = cookielib.LWPCookieJar() 
      self.opener = urllib2.build_opener(
       urllib2.HTTPCookieProcessor(self.cookieJar), 
       urllib2.HTTPRedirectHandler(), 
       urllib2.HTTPHandler(debuglevel=0)) 

      self.opener.addheaders = [('User-agent', "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.72 Safari/537.36")] 


      forms = {"username": self.username, 
        "password": self.password 
        } 

      data = urllib.urlencode(forms) 
      req = urllib2.Request('http://www.example.com/login.phtml',data) 
      res = self.opener.open(req) 
      self.login_html = res.read() 

      if 'Welcome to Neopets!' in self.login_html: 
       print 'Login Sucsessful!' 

       break 
      else: 
       print 'Failed Login' 

, который работает для обоего счетов здесь мой Купить Метод акций:

def Buy_Shares(self): 
     self.opener.addheaders = [('Referer','http://example.com/stockmarket.phtml?type=buy')] 
     site = self.opener.open('http://www.example.com/stockmarket.phtml?type=list&full=true') 

     html = site.read() 
     soup = BeautifulSoup(html) 
     text_list = [] 
     stocks_list = [] 
     for i in soup.findAll('b'): 
      text_list.append(i.get_text()) 

     start = text_list.index('Change')+1 
     stop = text_list.index('Search :') 

     for i in range(start,stop): 
      stocks_list.append(text_list[i]) 

     stocks = [stocks_list[i:i+4] for i in range(0, len(stocks_list), 4)] 
     for i in stocks: 
      if i[2] == '17': 
       stock_name = (i[0]).encode('utf-8') 
       print stock_name 
       break 
      else: 
       stock_name = None 

     if stock_name != None: 

      print "Buying" 
      forms1 = {"ticker_symbol" : stock_name, 
        "amount_shares": "1000", 
        "type" : "buy", 
        "_ref_ck" : "587d56547765f577cfdaaa3a7ac8328c" 
        } 
      data1 = urllib.urlencode(forms1) 
      req1 = urllib2.Request('http://www.example.com/process_stockmarket.phtml?',data1) 
      res1 = self.opener.open(req1) 
      html = res1.read() 
      print html 

      if 'Portfolio' in html: 
       print 'Sucsess' 


     elif stock_name == None: 
      print "No stock to buy" 

     self.Sell_Shares() 

, как я сказал, что программа работает с моим аккаунтом тогда, когда я пытаюсь мои друзья счета я получаю сообщение об ошибке в выводе HTML

я не могу понять, почему это работает для одного, а не других им думать, может быть, потому что у моего браузера была моя учетная запись, но я не уверен

Кто-то, пожалуйста, помогите работать над этим в течение нескольких часов!

Спасибо!

UPDATE

Так я отдал все сохраненные пароли из браузера, и теперь ни один из них работать, так что я думаю, что это был тот факт, что я был мой пароль сохранен, так почему разве это работает, когда я не имею пароль сохранен?

ответ

0

Либо файлы cookie не совпадают, либо "_ref_ck" : "587d56547765f577cfdaaa3a7ac8328c" - это значение, специфичное для пользователя.

+0

yup im thinkin его '_ref_ck' им нужно будет разобрать его со страницы, я чувствую себя глупым спасибо! – Serial

Смежные вопросы