Python爬⾍基础(⼆)--beautifulsoup-美丽汤框架介绍beautifulsoup 框架介绍
框架基本使⽤:
Beautiful Soup将复杂HTML⽂档转换成⼀个复杂的树形结构,每个节点都是Python对象,所有对象可以归纳为4种:
Tag:标签
NavigableString:可遍历字符串对象
BeautifulSoup:表⽰⼀个⽂档的全部内容
Comment:注释
find_all()函数:
find_all( name , attrs , recursive , string , **kwargs )
搜索 name 参数的值可以使任⼀类型的过滤器 ,字符窜,正则表达式,列表,⽅法或是 True
recursive :布尔型,是否查所有⼦节点,默认为true
eg:
find_all("a") 查标签为a
find_all(id="xx") 查id为xx的属性
soup.find_all(href=repile("elsie"), id='link1') 查属性值包含"elsie"且id为'link1'python正则表达式爬虫
data_soup.find_all(attrs={"data-foo": "value"}) 查属性名为data-foo值为value
soup.find_all("a", class_="sister") 查标签为a,class为sister(注意class是python中的关键字,所以这⾥要⽤class_)
soup.find_all("a", attrs={"class": "sister"}) 查标签为a,class属性为sister
find_next_siblings() 和 find_next_sibling() 平⾏查(在同⼀个⽗节点下的下⼀个/所有⼦节点,注意是同⼀个⽗节点下)
css选择器:select()
soup.select("title") 查title标签
soup.select("p:nth-of-type(3)") 查p标签
soup.select("body a") 查body标签中的a标签
soup.select(".sister") 查class为sister的标签注意有个.
soup.select("[class~=sister]") 查class为sister的标签符号:~=
soup.select("a#link2") 查a标签且id为lingk2
soup.select("#link1,#link2") 查id为link1或者lingk2
soup.select('a[href]') 查a标签且存在属性名为href
输出:
格式化输出:soup.prettify()
压缩输出:str(soup) 或者 unicode(soup.a) (应⽤于只想得到结果字符串,不重视格式)输出tag中的⽂本内容:get_text()
输出tag中的⽂本内容扩展:_text(strip=True) 去除⽂本前后的空⽩符
其他详细介绍可以参阅官⽅⽂档
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论