Python Urllib请求仅适用于一个用户
我在写一个网络机器人,我遇到了一个问题 基本上,当我输入用户名和密码时,机器人会在游戏中登录买卖股票,但当我输入不同的用户名和密码时,我会收到一个错误消息,说我从错误的页面被引导,即使我使用了Referer标题 这是我的登录码: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
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
我必须从页面上解析它,我觉得自己很笨,谢谢!!