爬下html的元素之后想要获取其中的超链接报错了
问题:解析一段网址元素后内容如下:<h4><a href="https://research.com/u/pierre-bourdieu" title="Read more">Pierre Bourdieu</a></h4>
<span class="sh">Collège de France,
France</span>
需要获取其中的超链接内容
代码如下
for result in soup.find_all('span', class_="col col--5 col--tablet"):
for nameUrl in result:
print(nameUrl.get('href'))
结果报错
AttributeError: 'NavigableString' object has no attribute 'get'
请教一下各位这个是什么问题?
nameUrl.get('href') 改成 nameUrl.href
直接 .href 试试,报错显示 NavigableString 没有 get 属性
Twilight6 发表于 2022-6-30 18:45
nameUrl.get('href') 改成 nameUrl.href
直接 .href 试试,报错显示 NavigableString 没有 get 属性
用了您的方法报错变成:
AttributeError: 'NavigableString' object has no attribute 'href'
看了下数据对象的类型是
<class 'bs4.element.NavigableString'>
<class 'bs4.element.Tag'>
这两种 这里自己回一下吧,问题解决了,主要就是在find_all()之后返回的对象仍然是tag对象,从这个地方入手,就是考虑怎么解析和提取tag对象里的元素,找了一下资料后代码改成
for result in soup.find_all('span', class_="col col--5 col--tablet"):
nameUrl=result.a['href']
就ok了
页:
[1]