python -- beautifulsoup 使用


一笔而就画出她的笑脸,此间,用了相濡以沫的十年


安装

pip install beautifulsoup4

解析库

  1. python标准库 --- BeautifulSoup(markup,'html.parser')
  2. lxml HTML解析库 --- BeautifulSoup(markup,'html.lxml')
  3. lxml XML 解析库 --- BeautifulSoup(markup,'html.pxml')
  4. html5lib --- BeautifulSoup(markup,'html.html5lib')

基本使用

from bs4 import BeautifulSoup

soup = BeautifulSoup(html,'lxml')

soup.prettify()   # 格式化html,输出为排版好的格式
soup.title.string # title 标签内容

标签选择器

选择元素

# 只是返回第一个结果,不返回全部
soup.title
soup.head
soup.p

获取标签名称

soup.title.name

获取属性名

# <p name="hello"></p>

soup.p['name']

# output: hello

获取标签内的内容

soup.p.string

嵌套选择

soup.head.title.string

子节点

# 返回列表
soup.p.contents

# 返回迭代器
soup.p.children

兄弟节点

soup.a.next_siblings
soup.a.previous_siblings

标准选择器

**find_all(name,attrs,recursive,text,**kwargs)**

name

# 返回一个 list
soup.find_all('ull')

attrs

soup.find_all(attrs={'id':'hello'})

# or class 需要加下划线 class_

soup.find_all(id='hello')

text

soup.find_all(text='name')

**find(name,attrs,recursive,text,**kargs)**


CSS 选择器

soup.select('.panel .panel-heading')

获取属性

for ul in soup.select('ul'):
    print(url['id'])

获取内容

for li in soup.select('li'):
    print(li.get_text())