[英]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.