Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Urllib请求仅适用于一个用户_Python_Http_Web_Urllib2 - Fatal编程技术网

Python Urllib请求仅适用于一个用户

Python Urllib请求仅适用于一个用户,python,http,web,urllib2,Python,Http,Web,Urllib2,我在写一个网络机器人,我遇到了一个问题 基本上,当我输入用户名和密码时,机器人会在游戏中登录买卖股票,但当我输入不同的用户名和密码时,我会收到一个错误消息,说我从错误的页面被引导,即使我使用了Referer标题 这是我的登录码: def Login(self): while True: self.cookieJar = cookielib.LWPCookieJar() self.opener = urllib2.build_open

我在写一个网络机器人,我遇到了一个问题

基本上,当我输入用户名和密码时,机器人会在游戏中登录买卖股票,但当我输入不同的用户名和密码时,我会收到一个错误消息,说我从错误的页面被引导,即使我使用了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输出中得到一个错误

我想可能是因为我的浏览器记住了我的帐户,但我不确定

有人帮我做了好几个小时了

谢谢大家!

更新


所以我从浏览器中清除了所有保存的密码,现在它们都不起作用了,所以我想这是我保存了密码的事实,为什么在我没有保存密码的情况下它不起作用呢?

cookies不匹配或
“\u ref\u ck:“587d56547765f577cfdaaa3a7ac8328c”
是一个特定于用户的值。

是的,我认为它是
\u ref\u ck
我必须从页面上解析它,我觉得自己很笨,谢谢!!