如何在特定类别的<li>标记下提取链接?

时间:2019-08-14 08:13:22

标签: python web-scraping beautifulsoup

<li class="a-last"><a href="/macbook-pro">Buy Now</a></li>

如何提取类/macbook-pro中的链接a-last?效率是一个考虑因素。

3 个答案:

答案 0 :(得分:1)

您可以这样做:

from bs4 import BeautifulSoup

html = """<li class="a-last"><a href="/macbook-pro">Buy Now</a></li>"""
soup = BeautifulSoup(html, 'html.parser')

href = soup.find('li', {'class': 'a-last'}).find('a').get('href')

print(href)

结果:

/macbook-pro

答案 1 :(得分:1)

一种可能性是CSS选择器:

data = '''<li class="a-last"><a href="/macbook-pro">Buy Now</a></li>'''

from bs4 import BeautifulSoup

soup = BeautifulSoup(data, 'lxml')

print(soup.select_one('li.a-last [href]')['href'])

打印:

/macbook-pro

li.a-last [href]将选择属性为href的标签,该标签位于<li>类别为a-last的标签下。

如果您想更具体一点,并且只想直接提取<a>下的<li class="a-last">标签 ,可以使用:

print(soup.select_one('li.a-last > a[href]')['href'])

答案 2 :(得分:0)

这是所有必需的href的列表:

[el.find('a').get('href') for el in soup.find_all('li', {'class': 'a-last'})]