数据蛙数据分析每周作业

BeautifulSoup

2019-01-10  本文已影响1人  小T数据站
from bs4 import BeautifulSoup
soup= BeautifulSoup(html,'lxml')
soup.prettify() # 补全html

# 获取标签及内容
print(soup.title)
print(soup.head)
print(soup.p)

# 获取属性
print(soup.p.attrs['name'])
print(soup.p['name'])

# 获取内容
print(soup.title.string)

# 嵌套选择
print(soup.head.title.string) # 获取head标签下的title标签里的内容

# 获取子节点
法一:print(soup.p.contents)
法二:print(soup.p.children)
           for i,child in enumerate(soup.p.children):
               print(i,child)

# 获取子孙节点
print(soup.p.descendants)
for i,child in enumerate(soup.p.descendants):
    print(i,child)

# 获取父节点
print(soup.p.parent)

# 获取祖先节点
print(list(enumerate(soup.a.parents)))

# 获取兄弟节点
print(list(enumerate(soup.a.next_siblings)))
print(list(enumerate(soup.a.previous_siblings)))
使用CSS选择器时,只需要调用select()方法,传入相应的CSS选择器即可:
print(soup.select('#id值 .class值 节点值'))

# 嵌套选择
from bs4 import BeautifulSoup
soup = BeautifulSoup(html, 'lxml')
for ul in soup.select('ul'):
    print(ul.select('li'))

# 获取属性
from bs4 import BeautifulSoup
soup = BeautifulSoup(html, 'lxml')
for ul in soup.select('ul'):
    print(ul['id'])
    print(ul.attrs['id'])

# 获取文本
from bs4 import BeautifulSoup
soup = BeautifulSoup(html, 'lxml')
for li in soup.select('li'):
    print('Get Text:', li.get_text())
    print('String:', li.string)

以上是根据崔庆才的爬虫视频做的个人笔记,可参考崔庆才的个人博客关于BeautifulSoup的详解 [Python3网络爬虫开发实战] 4.2-使用Beautiful Soup

上一篇 下一篇

猜你喜欢

热点阅读