-1

urllib2.Request(url) と BeautifulSoup を使用すると、次の結果が返されます。

<?xml version="1.0" encoding="utf-8"?>
<results>
 <status code="ok">
 </status>
 <principal-list>
  <principal account-id="1013353221" has-children="false" is-hidden="false" is-primary="false" principal-id="1013353225" training-group-id="" type="user">
   <name>
    First Last
   </name>
   <login>
    first.last
   </login>
   <email>
    first.last@domain.com
   </email>
   <display-uid>
    first.last
   </display-uid>
  </principal>
  <principal account-id="1013353221" has-children="false" is-hidden="false" is-primary="false" principal-id="1115269931" training-group-id="" type="user">
   <name>
    First Last
   </name>
   <login>
    first.last
   </login>
   <email>
    first.last@domain.com
   </email>
   <display-uid>
    first.last
   </display-uid>
  </principal>
 </principal-list>
</results>

これは、上記のリストを返すために私が行っていることです:

req = urllib2.Request(url)
response = urllib2.urlopen(req)
userlist = response.read()
soup = BeautifulSoup(userlist)
print(soup.prettify())

私はつま先を呼び出して、含まれusername = sys.argv[1]ているものを返してもらいたいprincipal-idusername<login> </login>

4

2 に答える 2

2

うーん...面白そうですね。

次のようなことを試してください:

req = urllib2.Request(url)
response = urllib2.urlopen(req)
userlist = response.read()
soup = BeautifulSoup(userlist)

username = sys.argv[1]

def get_id(username_var):
    tags = soup.findAll('login')
    for data in tags:
        if str(data.contents[0]).strip() != username_var:
            continue
        print data.parent['account-id']

get_id(username)

これにより、提供されたユーザー名に関連付けられたアカウント ID が返されます。

于 2012-11-13T22:08:17.010 に答える
2

たぶん、htmlを解析するBeautifulSoupを調べてみてください。

于 2012-11-13T06:42:54.093 に答える