繁体   English   中英

python美丽的汤提取物href

[英]python beautiful soup extract 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'))

我得到输出:无

我不知道为什么。

谢谢您的回答!

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

你能试试这个吗?

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'])

通过稍微修改 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'])

它工作正常

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM