2017-07-18 5 views
1

Ich versuche, einen Wert zu isolieren, der als Attribut durch die Verwendung von schönen Suppe (bs4) aufgeführt ist. Ich habe meine Ausgabe aufgelistet, aber ich bin nicht sicher, wie man nur die Zeichenfolge von "Wert" in einer Zeichenfolgeform erhält.Ein Attribut in bs4/beautifulSoup isolieren

import requests 
from bs4 import BeautifulSoup as bs 

html = """ 
<div class="buttons"> 
    <form method="POST" action="/1/token/approve"> 
     <a class="button primary" href="/login?returnUrl=%2F1%2Fauthorize%3FrequestKey%3Df079a57f7157bf084676c5a9c3d0443e">Log in</a> 
     <input type="submit" class="deny" value="Deny"> 

     <input type="hidden" name="requestKey" value="f079a57f7157bf084676c5a9c3d0443e"> 

     <!-- Need to pull this value --> 
     <input type="hidden" name="signature" value="1500374930141/76d6e6bf4e95732eece754cc00315a242db0ffcf2758052c1fd64f2e6024611b"> 

    </form> 
</div> 
""" 

#pull web page 
f = requests.get(html) 

# pass HTML to soup 
soup = bs(f.text, "lxml") 
bsIn = soup.find('input', attrs={'name':'signature'}) 

print (bsIn) # returns <input name="signature" type="hidden" value="1500387161323/9a240ffc8dfff875bc272f0defba27e58f4ffd8e7a29d00edc3528776bca3039"/> 

Antwort

0

können Sie erhalten HTML/XML-Attribute in schöne Suppe durch Indizierung, wie:

print(bsIn['value'])

Dies wird somit die Zeichenfolge drucken:

'1500387161323/9a240ffc8dfff875bc272f0defba27e58f4ffd8e7a29d00edc3528776bca3039' 

Es wird wie gedruckt :

1500387161323/9a240ffc8dfff875bc272f0defba27e58f4ffd8e7a29d00edc3528776bca3039 
Verwandte Themen