Web ページにアクセスし、小さな API のようにソース内の div から情報を取得する python パーサーを作成しました。しかし、異なるアカウントではより多くの DIVS があり、誤った読みとして返されます。
管理者アカウントにアクセスすると、常に {"PlayerExists": false} と表示されます。
私のコード:
if 'PlayerName' in self.request.GET:
self.response.headers['Content-Type'] = 'application/json'
docType = '{http://www.w3.org/1999/xhtml}'
PlayerName = self.request.GET['PlayerName']
gamertagava = self.request.GET['PlayerName']
output = {}
try:
msPageHandle = urllib.urlopen('http://nflplayers.mobi/'+PlayerName+'.html')
msPage = msPageHandle.read()
msPageHandle.close
parse = ET.fromstring(msPage)
except:
output['PlayerExists'] = False
self.response.write(json.JSONEncoder().encode(output))
return
output['AdminTeam'] = parse.find('.//*[@id="AdminTeam"]')
output['AdminLaunchTeam'] = parse.find('.//*[@id="AdminLaunchTeam"]')
output['Old Skool Player'] = parse.find('.//*[@id="Old Skool Player"]')
output['PlayerName'] = parse.find('.//*[@id="PlayerName"]').text
output['Playerscore'] = parse.find('.//*[@id="Playerscore"]').text
if output['Playerscore']=='--':
output['PlayerExists'] = False
output['Playerscore'] = 0
else:
output['GamertagExists'] = True
output['Playerscore'] = int(output['Playerscore'])
管理者には追加の DIV があるため、これが問題かどうかはわかりません。そしてこれです。どんな助けでも大歓迎です。
<div id="AdminTeam">
<label>Admin Team</label>
<div class="Badges">
<div id="AdminLaunchTeam" class="Badge"></div>
<div id="Old Skool Player" class="Badge"></div>
</div>
</div>
ありがとう。レミ