首页 / PYTHON / Python-bs4
Python-bs4
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Python-bs4,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1842字,纯文字阅读大概需要3分钟。
内容图文
form bs4 import BeautifulSoup #引入包
使用方式:可以将一个html文档,转化为指定的对象,然后通过对象的方法或属性去查找指定的内容。
(1)转化本地文件:
soup = BeautifulSoup(open(‘本地文件‘),‘lxml‘) #lxml是解析器
(2)转化网络文件:
soup = BeautifulSoup(open(‘字符串类型或者字节类型‘),‘lxml‘)
实操:
#
生成对象
soup = BeautifulSoup(open(‘soup_text.html‘,encoding=‘utf8),‘lxml‘)
(1)根据标签名查找:
#
查找对象里的a标签,这种方法只能找到第1个符合要求的标签
print(soup.a)
(2)获取属性:
print(soup.a[‘href‘])
print(soup.a[‘href‘])
print(soup.a[‘title‘])
print(soup.a[‘target‘])
#
打印a标签所有属性,并返回一个字典
print(soup.a.attrs)
(3)获取内容:
#
打印a标签里的文本
print(soup.a.text)
print(soup.a.text)
print(soup.a.string)
print(soup.a.get_text())
三者的区别为:如果标签里还有标签,string获取结果为None,其他两个方法可以获取内容
(4)find
#
找第1个符合要求的a
soup.find(‘a‘)
#查找title = ‘qin‘ 的a标签
soup.find(‘a‘, title = ‘qin‘)
#查找alt = ‘qi‘ 的a标签
soup.find(‘a‘, alt = ‘qi‘)
#注意,当用class查找时,格式为class_ ,因为class是关键字,无法直接使用
soup.find(‘a‘, class_ = ‘abcd‘)
#
先找到class = ‘tang‘ 的div,再通过这个div找到class = ‘du‘的a标签,此时找到的a标签是这个div里的第1个a标签
div = soup.find(‘div‘, class_ = ‘tang‘)
div.find(‘a‘, class_ = ‘du‘)
(5)find_all
#
查找所有的a标签,返回一个列表
list = soup.find_all(‘a‘)
#查找calss = ‘tang‘ 的div 里面所有的a标签
div = soup.find(‘div‘ , class_ = ‘tang‘)
div.find_all(‘a‘)
#查找calss = ‘tang‘ 的div 里面所有的a标签和b标签
div = soup.find(‘div‘ , class_ = ‘tang‘)
div.find_all([‘a’,‘b‘])
#查找calss = ‘tang‘ 的div 里面前2个a标签
div = soup.find(‘div‘ , class_ = ‘tang‘)
div.find_all(‘a‘, limit = 2)
(6)select
根据选择器选择指定的内容:a 标签选择器,.dudu类选择器,#lala id选择器,a,.dudu #lala 组合选择器,
div .dudu #lala .meme 层级选择器,只要是子级就可以选择
div > p > a > .dudu 只能是儿子才能选择
#
查找层级下面所有的a,返回1个列表
soup.select(‘.tang > ul > li > a‘)
#查找层级里下标为2的a标签
soup.select(‘.tang > ul > li > a‘)[2]
#查找层级里下标为2的a标签里的内容
soup.select(‘.tang > ul > li > a‘)[2].text
#查找层级里下标为2的a标签里的href属性
soup.select(‘.tang > ul > li > a‘)[2][‘href‘]
新手学习,如果错漏,望指正!!!
原文:https://www.cnblogs.com/xclzdjj/p/11623945.html
内容总结
以上是互联网集市为您收集整理的Python-bs4全部内容,希望文章能够帮你解决Python-bs4所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。