首页 > 解决方案 > 蟒蛇美汤提取物href

问题描述

所以我正在用 python 测试美丽的汤(这对那些想知道的人来说很棒)

当我想从我得到的链接中获取 href 时遇到问题,我不明白为什么我不能得到它。

这是我的代码:

for url in soup.find_all('article'):
if "Gonz Logo" in url.get_text():
    if "Black" in url.get_text():
        print(url)

这有效,但它给了我这个:

<article><div class="inner-article"><a href="/shop/jackets/gw1diqgyr/n53istanq" style="height:150px;"><img alt="N7qmqyee 3g" height="150" src="//assets.supremenewyork.com/147789/vi/N7qMqyEe_3g.jpg" width="150"/></a><h1><a class="name-link" href="/shop/jackets/gw1diqgyr/n53istanq">Gonz Logo Coaches Jacket </a></h1><p><a class="name-link" href="/shop/jackets/gw1diqgyr/n53istanq">Black</a></p></div></article>

(是的,一条大线……)

问题是我只想获得href。当我尝试时:

    print(url.get('href'))

我得到输出:无

我不知道为什么。

谢谢您的回答!

标签: pythonbeautifulsoup

解决方案


我认为你得到 None 是因为soup.find_all('article'). 当你这样做时,url.get('href')你不会得到链接。

要获取链接,我建议您a使用正则表达式获取所有标签,例如:

links = soup.findAll('a', attrs={'href': re.compile('[a-zA-Z0-9_()]')})
# now iterate over the links and
for link in links:
    # get url
    url = link.get('href')
    print(url)

推荐阅读