python美丽的汤提取物href

时间:2018-05-13 20:35:56

标签: python beautifulsoup

所以我用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'))

我输入输出:无

我不知道为什么。

谢谢你的回答!

3 个答案:

答案 0 :(得分:1)

你能试试吗?

for url in soup.find_all('article'):
if "Gonz Logo" in url.get_text():
    if "Black" in url.get_text():
        for child_a in url.find_all('a'):
           print(child_a['href'])

答案 1 :(得分:1)

我认为你因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)

答案 2 :(得分:0)

通过轻率地修改Ali Yilmaz的解决方案,如下所示(href = True):

for url in soup.find_all('article'):
if "Gonz Logo" in url.get_text():
    if "Black" in url.get_text():
        for child_a in url.find_all('a', href=True):
           print(child_a['href'])

效果很好

相关问题