2016-09-03 1 views
0

ich seine Grundfrage wissen, aber ich bin mit Python, so kann ich nicht herausfinden, wie die erste Element Wert erhalten Python mitwie ersten Elementwert in einem div in Python bekommen

Hier ist HTML-Code, aus der ich möchte nur den Wert der Faust Spanne greifen, die Website im Haupt div ist:

<div class= "main-div"> 
 
    <span><a class= "web-link" href="https://www.website.com"><span>website</a></span> 
 
    <span><a class= "web-link" href="https://www.facebook.com">facebook</a></span> 
 
    <span><a class= "web-link" href="https://www.twitter.com">Twitter</a></span> 
 
</div>

ich diesen python-Skript verwenden aber es druckt alle drei Spannweiten in vom Haupt div

Bitte helfen Sie mir meinen Wunsch Ergebnis zu erhalten. Ich möchte nur Website drucken und Ruhe auslassen. wie könnte es möglich

+0

'soup.find ("a", text = "Website") [ "href"] greifen' dann ist die Reihenfolge irrelevant. –

Antwort

0

Sie einen zusätzlichen <span> korrigierte Code geschrieben haben:

<div class= "main-div"> 
    <span><a class= "web-link" href="https://www.website.com">website</a></span> 
    <span><a class= "web-link" href="https://www.facebook.com">facebook</a></span> 
    <span><a class= "web-link" href="https://www.twitter.com">Twitter</a></span> 
</div> 

hier tag.get("href") eine Liste zurück, und es wird in websitelink gespeichert. Sie müssen nur websitelink[0] schreiben erstes Element in der Liste

website = jsoup.find_all("div", {"class": "main-div"}) 
for element in website: 
    link = jsoup.find_all("a", {"class": "web-link"}) 
    for tag in link: 
    websitelink = tag.get("href") 
    print(websitelink[0]) 
+0

Ihr Code ist genau der gleiche wie die OP-Leiste 'websitelink [0]' würde den ersten Buchstaben der Zeichenfolge erhalten, d. H. '" H "'. –

0
website = jsoup.find("div", {"class": "main-div"}) #find div 
if website: 
    link = website.find("a", href=True) #find first link with href 
    if link: 
     print(link['href']) 
Verwandte Themen