我需要从链接( a )标记中获取" href" 属性。
我跑
label_tag = row.find(class_='Label')
print(label_tag)
我得到了(抱歉,出于隐私原因,我无法显示链接和文字)
<a class="Label" href="_link_">_text_</a>
类型 的
<class 'bs4.element.Tag'>
但是当我跑步时(如BeautifulSoup getting href所示)
tag_link = label_tag['href']
print(tag_link)
我猜以下错误(在第一个命令上)
TypeError: 'NoneType' object is not subscriptable
有任何线索吗? 提前致谢
[已解决]编辑:我犯了一个错误(循环使用异构结构的元素)
答案 0 :(得分:5)
我的猜测是label_tag
实际上还没有找到你正在寻找的汤的一部分。这个最小的例子有效:
import bs4
text = '''<a class="Label" href="_link_">_text_</a>'''
soup = bs4.BeautifulSoup(text)
link = soup.find("a",{"class":"Label"})
print (link["href"])
输出:
_link_
答案 1 :(得分:0)
因为在<class 'bs4.element.Tag'>
中没有“ Label”类,所以label_tag ['href']返回None,这是发生错误的原因。
您可以使用以下代码来处理此异常:
if tag_link = label_tag.get('href'):
print(tag_link)
else:
print("there is no class of 'Label' or no attribute of 'href'! ")
此方法可用于处理异常以防止程序崩溃。
如果您的页面元素是固定的,则前一个答案是可行的。