找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 5629|回复: 0

[求助] 求助 python3 302重定向 保存cookie问题

1

主题

1

帖子

12

积分

贫民

积分
12
QQ
bestainan 发表于 2014-12-30 09:59:47 | 显示全部楼层 |阅读模式
这个程序需要用代理。 屏蔽了国内IP 。 注册twitter 已经可以了。
在下面激活游戏的地方。我觉得可能是 我post twitter表单的时候。 网址进行了 302重新定向。 程序抛出异常。 无法正常保存重新定向后的cookie
所以后面激活一直不成功。  清大神指教。 该如何操作。 我找了很多资料实在没办法。  请讲详细一些。谢谢。 本人新手。 一些web方面的知识都不太了解!~
我的QQ 是81999678  如果您愿意耐心解答问题。 清加我QQ  。谢谢
代码如下。
  1. #-*- coding:utf-8 -*-
  2. import urllib.request
  3. import urllib.parse
  4. import http.cookiejar
  5. import re
  6. import acc
  7. import random

  8. mail = ['@hotmail.com','@gmail.com','@163.com','@year.com','@outlook.com','@yahoo.com']



  9. class Twitter():


  10.     def creat(self):
  11.         account = acc.creat_1_account()
  12.         password = acc.creat_1_pasword()
  13.         email = account+random.choice(mail)
  14.         data = {}
  15.         cookie = http.cookiejar.CookieJar()#保存cookie
  16.         opener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cookie))
  17.         opener.addheaders = [('User-agent', 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36')]
  18.         
  19.         resp = opener.open('https://twitter.com/').read().decode('utf-8')
  20.         creat_twitter = 'https://twitter.com/account/create'
  21.         find = 'input type="hidden" name="authenticity_token" value="(?P<tokenVal>\w+)">'
  22.         haha = re.search(find,resp)
  23.         token = haha.group('tokenVal')
  24.         

  25.         
  26.         
  27.         
  28.         data['authenticity_token'] = token
  29.         data['user[name]'] = account
  30.         data['user[email]'] = email
  31.         data['user[user_password]'] = password
  32.         data['user[screen_name]'] = account
  33.         data['asked_cookie_personalization_setting'] = '1'
  34.         data['context'] = 'signup'
  35.         data['ad_id'] =''
  36.         data['ad_ref'] =''
  37.         data['user[remember_me_on_signup]'] = '1'
  38.         data['user[discoverable_by_email]'] = '1'
  39.         data['user[send_email_newsletter]'] = '1'
  40.         postData = urllib.parse.urlencode(data);
  41.         postData = postData.encode('utf-8')
  42.         resp3=opener.open(creat_twitter,data=postData)
  43.         temp = resp3.read().decode('utf-8')
  44.         
  45.         if 'Twitter / Start' in temp:
  46.             temp = account + '\t' + password + '\t' + email + '\n'
  47.             f = open('acc.ini','a+')
  48.             f.write(temp)
  49.             f.close()
  50.             
  51.         else:
  52.             print('注册失败')
  53.             
  54.     def activation(self):
  55.         url = 'https://member.x-legend.co.jp/openid/twitter/login.php?game_id=2'
  56.         url2 = 'https://twitter.com/intent/sessions'
  57.         url3 = 'https://member.x-legend.co.jp/member/register_opi_2.php'
  58.         data = {}
  59.         cookie = http.cookiejar.CookieJar()
  60.         opener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cookie))
  61.         opener.addheaders = [('User-agent', 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36')]
  62.         urllib.request.install_opener(opener)
  63.         resp = urllib.request.urlopen(url).read().decode('utf-8')
  64.         
  65.         
  66.         
  67.         
  68.         #找 authenticity_token
  69.         find = r'<input name="authenticity_token" type="hidden" value="(?P<authenticity_token>\w+)" /></div>'
  70.         r1 = re.search(find,resp)
  71.         authenticity_token = r1.group('authenticity_token')
  72.         find = '<input id="oauth_token" name="oauth_token" type="hidden" value="(?P<oauth_token>\w+)" /> '  
  73.         r2 = re.search(find,resp)
  74.         oauth_token = r2.group('oauth_token')
  75.         
  76.         data['authenticity_token'] = authenticity_token
  77.         data['repost_after_login'] = 'https://api.twitter.com/oauth/authorize'
  78.         data['oauth_token'] = oauth_token
  79.         data['session[username_or_email]'] = r'ScTf2ANuu' #self.creat.account
  80.         data['session[password]'] = r'y4.w1W):yLmUo'#self.creat.password
  81.         
  82.         

  83.         postData = urllib.parse.urlencode(data)
  84.         postData = postData.encode('utf-8')


  85.         opener.open(url2,data=postData)
  86.    

  87.         
  88.         data = {}
  89.         data['year']='1957'
  90.         data['month']='8'
  91.         data['day']='11'
  92.         data['sex']='M'
  93.         data['selected_games[]']='2'
  94.         data['selected_games[]']='1'            
  95.         postData = urllib.parse.urlencode(data)
  96.         postData = postData.encode('utf-8')            
  97.         a = urllib.request.urlopen(url3,data = postData).read().decode()
  98.         a = urllib.request.urlopen('https://member.x-legend.co.jp/member/register_opi_3.php').read().decode('utf-8')
  99.         

  100. if __name__ == ('__main__'):
  101.    
  102.     app = Twitter()
  103.    
  104.     #app.creat()
  105.     app.activation()
复制代码



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表