bs4是什麽?
它的作用是能够快速方便简单的提取网页中指定的内容,给我一个网页字符串,然后使用它的接口将网页字符串生成一个对象,然后通过这个对象的方法来提取数据
lxml是什麽?
lxml是一个解析器,也是下面的xpath要用到的库,bs4将网页字符串生成对象的时候需要用到解析器,就用lxml,或者使用官方自带的解析器 html.parser
安装bs4
pip install bs4
pip install lxml
属性
要点:提取标签属性
soup.a.attrs 返回一字典,里面是所有属性和值
soup.a['href'] 获取href属性
文本
要点:提取文本内容
#当标签里面还有标签的时候,string获取的为None,其他两个获取纯文本内容
soup.a.string
soup.a.text
soup.a.get_text()
get_text("",strip=True) #去除所获得文本的空白、换行等,干净整洁
find方法
要点:找到唯一标签
#find只能找到符合要求的第一个标签,他返回的是一个对象
soup.find('a')
soup.find('a', class_='xxx')
soup.find('a', title='xxx')
soup.find('a', id='xxx')
soup.find('a', id=re.compile(r'xxx')) #re方法
find_all方法
要点:找到所有标签,列表返回
#返回一个列表,列表里面是所有的符合要求的对象
soup.find_all('a')
soup.find_all('a', class_='wang')
soup.find_all('a', id=re.compile(r'xxx'))
soup.find_all('a', limit=2) #提取出前两个符合要求的a
css选择器
要点:和find_all一样找到所有标签,列表返回
- 通过标签查找
soup.select('title')
soup.select('a')
soup.select('a', limit=2) #提取出前两个符合要求的a
soup.select('a',limit=2)[1].text #提出a标签里符合要求的第一个,取出文本
- 通过类名查找
#通过class类名查找使用.
soup.select('.sister')
- 通过 id 名查找
#通过id查找使用#
soup.select('#link1')
- 属性查找
#查找a标签中class="sister"的
soup.select('a[class="sister"]')
extract()
要点:移除指定标签,并返回结果
biaoqian=soup.find('h1',{'id':"HEADING"})
english_name=biaoqian.span.extract()
网友评论