如何在python中获取div中的第一个元素值

时间:2016-09-03 05:41:08

标签: python html html5 python-3.x beautifulsoup

我知道它的基本问题,但我是python的新手,所以我无法弄清楚如何使用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>
&#13;
&#13;
&#13;

我正在使用这个python脚本,但它从main-div

打印所有三个跨度

&#13;
&#13;
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)
&#13;
&#13;
&#13;

请帮助我获得我的渴望结果。我想打印网站并跳过休息。怎么可能

2 个答案:

答案 0 :(得分: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])

答案 1 :(得分: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'])