• <fieldset id="8imwq"><menu id="8imwq"></menu></fieldset>
  • <bdo id="8imwq"><input id="8imwq"></input></bdo>
    最新文章專題視頻專題問(wèn)答1問(wèn)答10問(wèn)答100問(wèn)答1000問(wèn)答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
    問(wèn)答文章1 問(wèn)答文章501 問(wèn)答文章1001 問(wèn)答文章1501 問(wèn)答文章2001 問(wèn)答文章2501 問(wèn)答文章3001 問(wèn)答文章3501 問(wèn)答文章4001 問(wèn)答文章4501 問(wèn)答文章5001 問(wèn)答文章5501 問(wèn)答文章6001 問(wèn)答文章6501 問(wèn)答文章7001 問(wèn)答文章7501 問(wèn)答文章8001 問(wèn)答文章8501 問(wèn)答文章9001 問(wèn)答文章9501
    當(dāng)前位置: 首頁(yè) - 科技 - 知識(shí)百科 - 正文

    python實(shí)現(xiàn)的登錄和操作開心網(wǎng)腳本分享

    來(lái)源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-27 14:30:35
    文檔

    python實(shí)現(xiàn)的登錄和操作開心網(wǎng)腳本分享

    python實(shí)現(xiàn)的登錄和操作開心網(wǎng)腳本分享:SNS什么的我是一直無(wú)愛的,這次蛋疼寫了個(gè)登錄開心網(wǎng)(kaixin001)并向所有好友發(fā)送站內(nèi)消息的腳本。 開心網(wǎng)在登錄的時(shí)候做了一些處理,并不傳原始密碼,從js分析到的結(jié)果是:登錄時(shí)會(huì)生成一個(gè)隨機(jī)的key,然后用這個(gè)key和原始密碼進(jìn)行xxtea加密,把加密后的
    推薦度:
    導(dǎo)讀python實(shí)現(xiàn)的登錄和操作開心網(wǎng)腳本分享:SNS什么的我是一直無(wú)愛的,這次蛋疼寫了個(gè)登錄開心網(wǎng)(kaixin001)并向所有好友發(fā)送站內(nèi)消息的腳本。 開心網(wǎng)在登錄的時(shí)候做了一些處理,并不傳原始密碼,從js分析到的結(jié)果是:登錄時(shí)會(huì)生成一個(gè)隨機(jī)的key,然后用這個(gè)key和原始密碼進(jìn)行xxtea加密,把加密后的

    SNS什么的我是一直無(wú)愛的,這次蛋疼寫了個(gè)登錄開心網(wǎng)(kaixin001)并向所有好友發(fā)送站內(nèi)消息的腳本。

    開心網(wǎng)在登錄的時(shí)候做了一些處理,并不傳原始密碼,從js分析到的結(jié)果是:登錄時(shí)會(huì)生成一個(gè)隨機(jī)的key,然后用這個(gè)key和原始密碼進(jìn)行xxtea加密,把加密后的結(jié)果再進(jìn)行sha1加密。之后post這個(gè)key以及加密后的密碼進(jìn)行登錄驗(yàn)證。

    以下是很簡(jiǎn)陋的腳本內(nèi)容:

    #coding: utf-8
    """
    開心網(wǎng)操作腳本
    
    Author: piglei2007@gmail.com
    Version: 1.0
    """
    import re
    import urllib
    import urllib2
    import random
    import hashlib
    import binascii
    import cookielib
    import simplejson
    
    from xxtea import encrypt
    
    LOGIN_URL = "http://www.kaixin001.com/login/login_api.php"
    LOGIN_KEY_URL = "http://www.kaixin001.com/"
    FRIEND_LIST_URL = "http://www.kaixin001.com/interface/suggestfriend.php"
    MESSAGE_SEND_URL = "http://www.kaixin001.com/msg/post.php"
    
    LOGIN_KEY_RE = re.compile(r"newsEnLogin('(.*?)'")
    
    class LoginError(Exception):
     """
     登錄失敗拋出異常
     """
    
    class Kaixin001User(object):
     """
     操作kaixin001,現(xiàn)有方法:
     
     get_login_key - 獲得用戶訪問(wèn)登錄頁(yè)面時(shí)分配的加密key
     
     get_rpassword - 獲得經(jīng)過(guò)xxtea以及sha1加密后的密碼
     
     login - 登錄
     
     get_friends_list - 獲得所有好友,返回字典格式
     
     send_messages_to_all - 給所有好友發(fā)消息
     """
     
     def __init__(self, username, password):
     self.username = username
     self.password = password
     self.cj = cookielib.CookieJar()
     opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(self.cj))
     opener.addheaders = [
     ("User-agent", "Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.9.1) Gecko/20090704 Firefox/3.5"),
     ("Accept", "*/*"),
     ("Host", "www.kaixin001.com")
     ]
     urllib2.install_opener(opener)
     
     def get_login_key(self):
     """
     獲得登錄時(shí)候的加密key
     """
     _temp = urllib2.urlopen(LOGIN_KEY_URL).read()
     key = LOGIN_KEY_RE.search(_temp).group(1)
     return key
     
     def login(self):
     """
     登錄
     """
     login_key = self.get_login_key()
     rpassword = self.get_rpassword(self.password, login_key)
     login_params = {
     'email': self.username,
     'encypt': login_key,
     'rpasswd': rpassword,
     'url': '/home/',
     'ver': '1' 
     }
     req = urllib2.Request(LOGIN_URL, urllib.urlencode(login_params), {
     "Referer": "http://www.kaixin001.com/"
     })
     result = urllib2.urlopen(req).read()
     
     # 登錄失敗
     if "errno" in result:
     raise LoginError("登錄失敗,請(qǐng)檢查用戶名或密碼")
     
     print "用戶 %s 登錄成功!" % self.username
     
     return 'ok'
     
     def get_friends_list(self):
     """
     獲得所有好友列表
     """
     get_friends_params = {
     't': str(random.random()),
     'type': 'all', 
     }
     result = urllib2.urlopen(FRIEND_LIST_URL, urllib.urlencode(get_friends_params)).read()
     friends = simplejson.loads(result)
     
     print "你一共有 %s 位好友" % (len(friends) - 1)
     return friends
     
     def send_messages_to_all(self, message=''):
     """
     給所有好友發(fā)消息
     """
     friends = self.get_friends_list()
     send_params = {
     'attachment_cancel': '',
     'attachment_forwarding': '',	
     'attachment_random': '',
     'code': '',
     'content': message,
     'forward_thread': '',
     'rcode': '',
     'service': '0',
     'texttype': 'html',
     'uids': ",".join([str(f['uid']) for f in friends]) 
     }
     result = urllib2.urlopen(MESSAGE_SEND_URL, urllib.urlencode(send_params))
     print result.geturl()
     print "消息發(fā)送成功"
     return 'ok'
     
     
     def get_rpassword(self, password, key):
     """
     獲得加密后的密碼
     """
     xxtea_pw = binascii.b2a_hex( encrypt(password, key) )
     r_password = hashlib.sha1(xxtea_pw).hexdigest()
     return r_password
     
    if __name__ == '__main__':
     kxu = Kaixin001User(
     username = 'your_username',
     password = 'your_password'
     )
     kxu.login()
     kxu.send_messages_to_all("This message is send by Python.")

    這是腳本中需要用到的xxtea算法的python實(shí)現(xiàn)(xxtea.py):

    import struct
     
    _DELTA = 0x9E3779B9 
     
    def _long2str(v, w): 
     n = (len(v) - 1) << 2 
     if w: 
     m = v[-1] 
     if (m < n - 3) or (m > n): return '' 
     n = m 
     s = struct.pack('<%iL' % len(v), *v) 
     return s[0:n] if w else s 
     
    def _str2long(s, w): 
     n = len(s) 
     m = (4 - (n & 3) & 3) + n 
     s = s.ljust(m, "
    
    主站蜘蛛池模板:
    亚洲精品无码99在线观看|
    无码精品人妻一区二区三区漫画|
    无码人妻精品一区二区蜜桃AV|
    精品国产福利久久久|
    无码国内精品久久人妻蜜桃|
    国产精品无码永久免费888
    |
    三级高清精品国产|
    真实国产乱子伦精品免费|
    97精品人妻系列无码人妻|
    亚洲国产精品无码专区|
    人妻少妇精品无码专区动漫|
    国产成人精品怡红院在线观看|
    国产精品国产三级国产专播|
    国语自产少妇精品视频|
    亚洲AV无码成人精品区在线观看|
    热RE99久久精品国产66热|
    精品国产香蕉伊思人在线在线亚洲一区二区|
    国产亚洲精品va在线|
    91精品国产色综合久久|
    91精品成人免费国产|
    国产成人精品无码播放|
    国内精品久久久久久久97牛牛|
    青青草原精品国产亚洲av|
    亚洲AV无码精品色午夜在线观看|
    亚洲精品第一国产综合境外资源
    |
    在线人成精品免费视频|
    国产精品视频一区二区三区|
    99热亚洲色精品国产88|
    亚洲AV成人无码久久精品老人|
    中国精品18videosex性中国|
    在线观看91精品国产网站|
    亚洲国产精品成人精品无码区|
    在线精品亚洲一区二区|
    亚洲精品无码成人片久久|
    亚洲精品无码不卡在线播HE|
    亚洲精品无码久久千人斩|
    无码精品一区二区三区在线
    |
    九九热这里只有国产精品|
    国产午夜精品理论片免费观看|
    国产成人综合精品一区|
    国产午夜福利精品久久|