先写一个入门案例
from urllib.request import urlopen
from bs4 import BeautifulSoup
url = ''
html = urlopen(url)
bs = BeautifulSoup(html, 'html.parser')
for child in bs.find('table', {'id':'giftList'}).children:
print(child)
大量案例解析
find_all 获取到包含一个便签的所有列表
bs.find_all('table')[4].find_all('tr')[2].find('td').find_all('div')[1].find('a')
find_all 获取指定类名的标签的所有结果
# 获取 span 标签 类名为 green 的所有结果
nameList = bs.find_all('span', {'class':'green'})
get_text 清除所有标签,只返回包含文字的部分
nameList = bs.find_all('span',{'class':'green'}).get_text()
获取满足多个条件中的一个时的结果也可以用find_all
.find_all(['h1', 'h2', 'h3', 'h4', 'h5', 'h6'])
.find_all('span',{'class':{'green','red'}})
查找包含 the prince 内容的标签
nameList = bs.find_all(text='the prince')
返回第一个在class_属性中包含单词text并且在id属性中包含titile的标签
title = bs.find_all(id='title', class_='text')
注意一下两种方式完全一样
bs.find_all(id='text')
bs.find_all('',{'id':'text'})
加入正则表达式的案例
from urllib.request import urlopen
from bs4 import BeautifulSoup
url = ''
html = urlopen(url)
bs = BeautifulSoup(html, 'html.parser')
images = bs.find_all('img', {'src':re.compile('\.\.\/img\/gifts\/img.*\.jpg')})
for image in images:
print(image['src'])