soup.find_all()函数的重复问题

         前一个月接触了python并且跟着视频和书籍学习了python的语法。最近在观摩Python的爬虫操作。学习了一点requests,bs4库的用法。

        于是自己也动手实验了一下初级的网页代码爬取。

         先上一个自己写的标准套路样式的代码吧:

     

      这段代码是先用requests库提取b站的所有代码,然后用bs4库使提取的标签代码变得更整齐,然后创建一个列表,用beaytifulsoup中的find_all()函数加上for循环履遍所有‘div’标签,如果标签中不为空值,则存入列表中。最后打印列表。但是输出结果却并不如人意:

       如上图所示,截取的‘div’标签中的内容被重复录入了三次(我一开始以为是输出了两次,但是我直接输出列表中的内容却还是重复三次)。

      百度搜过了soup,find_all()函数后,我看到了另一种写法,把它运用在我的代码中如下:

     上图红线是改进后代码的不同之处。在find_all()函数中添加了标签参数,存入sopus中,再循环将标签内容送入列表,此时列表中有完整的标签,形如<div>string<div>格式,所以最后将列表内容输出时要加.text输出标签里的string。

    输出效果如下图:

     

     但是,我还是不知道为什么第一次的那一种方法会连续重复存入三次。在日后的学习中,我或许会明白的。

    

猜你喜欢

转载自blog.csdn.net/a13697013326/article/details/83388327