青青草原王小华 发表于 2020-12-8 23:58:01

求大佬解答疑惑

{:5_104:}
是使用bs4库的时候

i ='<div>1<small class="float-right text-muted" data-placement="top" data-toggle="tooltip" ><i class="fa fas fa-comments"></i> 0</small></div>
<div>2<small class="float-right text-muted" data-placement="top" data-toggle="tooltip"><i class="fa fas fa-comments"></i> 0</small></div>'

bs = BeautifulSoup(i,"lxml")

res = bs.find_all('div')

for i in res:
    print(i.small)
这个为什么可以用 i 得到small啊???

如果换成 i.div 为什么就是None???

求求大佬解惑

笨鸟学飞 发表于 2020-12-9 02:06:16

bs = BeautifulSoup(i,"lxml")
print(bs.div)   # 打印(筛选第一个div标签的内容),因此这样做只能找到第1个,加了'.'表示bs这个类的属性,筛选的是下一级标签
res = bs.find_all('div') # 查找所有的div标签的内容,保存为列表,赋值给res
print(res)               # 打印res列表
for i in res:
    print(i.small)       # 遍历res列表,筛选res成员中的第一个small标签(同上,也是下一级标签),并打印内容

这么解释你明白么?因此res列表成员(也就是循环中的i变量),是没有div这个下一级标签的
你再试试下面这个代码?
bs = BeautifulSoup(i,"lxml")
res = bs.find_all('small')
for i in res:
    print(i)

孤独的嫖客 发表于 2020-12-9 07:29:04

青青草原王小华 发表于 2020-12-10 10:17:23

笨鸟学飞 发表于 2020-12-9 02:06
这么解释你明白么?因此res列表成员(也就是循环中的i变量),是没有div这个下一级标签的
你再试试下面 ...

嗷嗷嗷嗷,谢谢谢谢

青青草原王小华 发表于 2020-12-10 10:17:55

孤独的嫖客 发表于 2020-12-9 07:29


谢谢谢,通俗易懂,牛{:5_106:}
页: [1]
查看完整版本: 求大佬解答疑惑