基本方法如下:
# soup.a 只能找到第一个符合要求的标签 # soup.a.attrs 获取a所有的属性和属性值 # soup.a.attrs['href'] 获取href属性 # soup.a.string 获取a标签中存储的文本内容(直系) # soup.a.text # 非直系 该标签下所有的文本内容 # soup.a.get_text() # 非直系 该标签下所有的文本内容 # soup.find('a') 找到第一个符合要求的标签 # soup.find('a', id='xxx') id为xxx的的a标签(返回一个) # soup.findall('a') # 找到所有a标签 # soup.findall(['a', 'b']) # 找到所有a标签和b标签 # soup.select() # 根据选择器选择定位到标签
简单案例: 下载诗词名句网的三国演义文章
import requests from bs4 import BeautifulSoup url = 'http://www.shicimingju.com/book/sanguoyanyi.html' fileTxt = requests.get(url).text soup = BeautifulSoup(fileTxt, 'lxml') a_list = soup.select('.book-mulu > ul > li > a') f = open('sanguo.txt', 'w', encoding='utf8') for a in a_list: title = a.string detail_url = 'http://www.shicimingju.com' + a['href'] text = requests.get(detail_url).text detail_soup = BeautifulSoup(text, 'lxml') content = detail_soup.find('div', class_='chapter_content').text f.write(title+'\n'+content) print(f'{title} 下载完毕') print('over') f.close()