提问人:Notsuj 提问时间:8/2/2023 更新时间:8/2/2023 访问量:19
Python BeautifulSoup4 查找属性
Python BeautifulSoup4 Finding Attributes
问:
现在我正在构建一个网络爬虫来抓取标签后的实际 href 链接,然后继续并制作一个包含我抓取的所有值的文件。
我只想获取“/groups/1234123”属性值和 ID 名称(“InsertNameHere”),但没有任何效果。
from bs4 import BeautifulSoup
htmltext = ''' <div class="sidenav">
<div class="sidenav-head" id="InsertNameHere">
<a href="/groups/1234123/">
InsertNameHere
</a>
</div>
</div>'''
soup = BeautifulSoup(htmltext, 'html.parser')
s = soup.find_all('a')
link= s.find('href')
print(link)
我得到
“AttributeError:ResultSet 对象没有属性'find'。您可能将元素列表视为单个元素。当你打算调用 find() 时,你是否调用了 find_all()?
我试图将link = s.find('href')
link = s.attrs
在那之后,它说我有一个不同的属性错误。
我还需要保留该属性,因为我需要抓取多个 id。s.find_all()
答:
0赞
Driftr95
8/2/2023
#1
你可以试试 link= s[0]['href']
正如错误消息所示,您应该使用 而不是 which 返回 ResultSet(类似于标记列表)。此外,您需要使用甚至简单地使用 ,而不是 ;有关更多详细信息,请参阅文档。s = soup.find('a')
find_all
.get('href')
['href']
.find
0赞
Jack Fleeting
8/2/2023
#2
这可能很简单
s = soup.select_one('a[href]')
print(s['href'])
评论