使用带有BeautifulSoup的CSS选择器获取属性值

时间:2014-11-07 14:19:48

标签: python css python-3.x beautifulsoup html-parsing

我正在使用Python并使用BeutifulSoup

进行网络抓取

我有HTML这样的标记:

<tr class="deals" data-url="www.example2.com">
<span class="hotel-name">
<a href="www.example2.com"></a>
</span>
</tr>
<tr class="deals" data-url="www.example3.com">
<span class="hotel-name">
<a href="www.example3.com"></a>
</span>
</tr>

我想在所有data-url中获得href<tr>值。更好如果我可以获得href

以下是我的相关代码的一小部分:

main_url =  "http://localhost/test.htm"
page  = requests.get(main_url).text
soup_expatistan = BeautifulSoup(page)

print (soup_expatistan.select("tr.deals").data-url)
# or  print (soup_expatistan.select("tr.deals").["data-url"])

1 个答案:

答案 0 :(得分:2)

您可以使用tr.deals span.hotel-name a CSS Selector访问链接:

from bs4 import BeautifulSoup

data = """
<tr class="deals" data-url="www.example.com">
<span class="hotel-name">
<a href="wwwexample2.com"></a>
</span>
</tr>
"""

soup = BeautifulSoup(data)
print(soup.select('tr.deals span.hotel-name a')[0]['href'])

打印:

wwwexample2.com

如果您有多个链接,请对它们进行迭代:

for link in soup.select('tr.deals span.hotel-name a'):
    print(link['href'])