2016-09-03 165 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'])