细说Beautiful Soup4,你学会了吗?

网站建设3年前发布
13 0 0
202303070147050372230164e2f52a0fd47475900914c38a886d973,Beautiful Soup4是一个 Python 库,用于从 HTML 和 XML 文件中提取数据。它是一个工具箱,通过解析文档为用户提供需要抓取的数据,Beautiful Soup自动将输入文档转换为Unicode编码,输出文档转换为utf-8编码。你不需要考虑编码方式,除非文档没有指定一个编码方式,这时,Beautiful Soup就不能自动识别编码方式了。,使用pip来安装BeautifulSoup。,另外要安装解析器,下列表格列出一些常用的解析器。,2023030714085095f9ad742e1da807568676d58a773855558d9e706,运行输出如下图所示,但是发现好像这个网页不止一个a标签跟p标签,是因为它查找的是在所有内容中的第一个符合要求的标签,要想得到所有符合要求的标签,后面会介绍find_all函数。,20230307013819877520950df0b5be9a31395febd2dd84f141b8157,运行输出如下图所示,name输出的是标签的本身,attrs输出的是一个字典的类型,如果我们需要得到某个标签的某个属性可以使用字典一些方法去获取比如get方法,print(soup.p.get("class"))或者直接使用print(soup.p["class"])。,202303070141028610dd07356e893ac222346d05e9c970557452539,运行输出如下图,可以NavigableString类型的string方法轻松获取到了标签里面的内容。,2023030701382164b28130726d784eb941263838701d8d1de34c861,运行输出如下图所示:,20230307013821598ef4562c0a68c696a115f84685cd506fafee591,运行输出如下,a 标签里的内容实际上是注释,但是如果利用 .string方法来输出它的内容,发现它已经把注释符号去掉了,所以这可能会给带来不必要的麻烦。,20230307013822b7bc62500959c190fc84610a7e74a4a3f87307304,运行输出结果如下图所示:,2023030701382242df4a265ae127de7ff746b7471f3771712201390,运行结果输出如下图所示:,20230307013823d409e2745ee019a08ed584a7137731358fc283209,运行结果输出如下图所示:,20230307014102775f6f516b71d053368337f1945b562ad64623250,运行结果输出如下图所示:,2023030701410349eb28d59c73bdab7d616918b7f300cd8abe29978,运行结果输出如下图所示:,20230307013826432e3bd14fb766c0e6e99516ea79d952411ed0365,find_all(name,attrs,recursive,text,\kwargs)**,find_all()方法用于搜索当前tag的所有tag子节点,并判断是否符合过滤条件。,运行结果如下图所示:,20230307013826b5cc3b821f84808a44337916de91dff5ef1f8a601,运行结果如下图所示:,20230307014104c58e39a7897a95494a377678ed5370e41b8eef525,运行结果如下图所示:,20230307013827c8f8b83847bd583737d845cd439d7ab8cc7874589,运行结果如下图所示:,20230307013828876aed1751432e75894079dcf94e4978e152f4453,输出结果如下图所示:,20230307013828c15a47f774cd8984b2c7176ba9d109cbfb2d14460,运行结果如下图所示:,20230307014108025f8bd713bd546e951565b8d759120064fbfe341,find(name , attrs , recursive , text , **kwargs ), 它与 find_all() 方法唯一的区别是 find_all() 方法的返回结果是值包含一个元素的列表,而 find() 方法直接返回结果。​,运行结果如下图所示:,20230307014108b710fd239418a19602a646497e42a0d3908ef6325,运行结果如下图所示:,20230307140907755907c69da48263082739c40a3159d99355c8901,运行结果如下图所示:,20230307013830e41b7cf549d2689594a2604c9de61f0fad254d282,运行结果如下图所示:,20230307013831e3cd9d331dfeed399323530edbc0881ec1a5d5540,运行结果如下图所示:,202303070141089706f5627e30d3c3a1e479f97653c78bfc7a03392,运行结果如下图所示:,20230307013833d9cfbfa96e069d04cbf5005c8c9da26feebedf138,运行结果如下图所示:,20230307013833f50823014d3a1fc6ab732552fa4e6399b9a464811,运行结果如下图所示:,20230307013834824774a5382a55d9fdf954bfd1cd793ec7060d798,本篇内容比较多,把 Beautiful Soup 的方法进行了大部分整理和总结,但是还不够完整只是列出一些常用的,如果需要完整的可以查看Beautiful Soup 官网的文档,希望对大家有帮助,掌握了 Beautiful Soup,一定会给你在数据爬取带来方便。,本文转载自微信公众号「爱编码的社畜」,可以通过以下二维码关注。转载本文请联系爱编码的社畜公众号。,2023030701410945c7b9e1966eb00d38777235a384959bafa466497
© 版权声明

相关文章