2016-09-03 96 views
0

我知道它的基本問題,但我是新與Python,所以我無法弄清楚如何使用python如何獲得第一個元素值在一個div在python

這裏拿到第一個元素的值是HTML代碼,從中我只是想抓住拳頭跨度值,它是網站主DIV:

<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>

我使用這個python腳本,但它打印所有三個跨度從主DIV

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

'soup.find( 「A」,文本= 「網站」)的 「href」]'然後順序無關緊要。 –

回答

0

你寫了一個額外的<span> 糾正代碼:

<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> 

這裏tag.get("href")返回一個列表,並將其存儲在websitelink。 你只需要編寫websitelink[0]搶第一個元素列表

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

您的代碼與OP的bar'websitelink [0]'會得到字符串的第一個字母,即「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'])