当前位置: 首页 > Web前端 > HTML5

Python爬虫详解-BeautifulSoup库

时间:2023-04-04 22:44:38 HTML5

关于BeautifulSoupBeautifulSoup是一个Python库,可以从HTML或XML文件中提取数据。它可以通过您喜欢的转换器实现地道的文档导航、搜索和修改文档。BeautifulSoup将为您节省数小时甚至数次。以天为单位的工作时间。安装:pip3installBeautifulSoup4用法一、基本用法frombs4importBeautifulSoupbs=BeautifulSoup(html,"html.parser")#缩进格式print(bs.prettify())#格式化html结构print(bs.title)#获取名称ofthetitletagprint(bs.title.name)#获取title的名称print(bs.title.string)#获取head标签的所有内容print(bs.head)print(bs.div)#获取第一个div标签中的所有内容print(bs.div["id"])#获取第一个div标签的id值print(bs.a)#获取第一个a标签中的所有内容print(bs.find_all("a"))#获取所有a标签print(bs.find(id="u1"))#获取id="u1"foriteminbs.find_all("a"):print(item.get("href"))#获取所有a标签,遍历并打印一个标签中href的值foriteminbs.find_all("a"):print(item.get_text())2.Selectelementfrombs4importBeautifulSoupsoup=BeautifulSoup(html,'lxml')print(soup.title)print(type(soup.title))print(soup.head)print(soup.p)#Getnameprint(soup.title.name)print(soup.p.attrs['name'])print(soup.p['name'])#获取内容print(soup.p.string)#获取后代节点print(soup.p.children)fori,childinenumerate(soup.p.children):print(i,child)3.find_all()find_all(name,attrs,recursive,text,**kwargs)可以根据标签名、属性查找和内容文档,返回所有符合条件的内容))#通过属性打印(soup.find_all(attrs={'id':'list-1'}))print(soup.find_all(attrs={'name':'elements'}))print(soup.find_all(id='list-1'))print(soup.find_all(class_='element'))#throughtextprint(soup.find_all(text='Foo'))3.find()find(name,attrs,recursive,text,**kwargs)find返回单个元素,find_all返回bs4中的所有元素importBeautifulSoupsoup=BeautifulSoup(html,'lxml')print(soup.find('ul'))print(type(soup.find('ul')))print(soup.find('page'))find_parents()#返回所有祖先节点find_parent()#返回直接父节点find_next_siblings()返回所有后续兄弟节点find_next_sibling()返回第一个后续兄弟节点find_previous_siblings()返回前所有兄弟节点find_previous_sibling()返回前一个第一个兄弟节点find_all_next()返回该节点之后所有符合条件的节点find_next()返回第一个符合条件的节点find_all_previous()在节点find_previous()返回第一个符合条件的节点之后返回所有符合条件的节点5.css选择--直接通过select()传入css选择器完成选择frombs4importBeautifulSoupsoup=BeautifulSoup(html,'lxml')print(soup.select('.panel.panel-heading'))print(soup.select('ulli'))print(soup.select('#list-2.element'))print(type(soup.select('ul')[0]))forulinsoup.select('ul'):print(ul.select('li'))#Getattributesforulinsoup.select('ul'):print(ul['id'])print(ul.attrs['id'])#getcontentforliinsoup.select('li'):print(li.get_text())参考BeautifulSoup库(个人整理)用法PythonBeautifulSoup4.4.0文档中的BeautifulSoup库