本文介绍BeautifulSoup方法抓取网页数据并保存
为了方便查找抓取数据和保存数据,需要requests模块、bs4模块BeautifulSoup方法和xlwt模块(下载方法:打开cmd,输入pip install 包名)
本篇我们演示下抓取豆瓣音乐排行榜(https://music.douban.com/chart)
图例如下:
点击F12打开HTML源码,我们可以看出每个
标签下都有一个a标签的电影名,因此我们可以定位搜索电影名了。
代码如下:
代码如下:
#抓取网页数据,并保存
from bs4 import BeautifulSoup
import requests
import xlwt
def get_save_music(url):
#抓取数据
f = requests.get(url) #get方法访问网页
soup = BeautifulSoup(f.content, "lxml") #用xlml解析f.content获取网页全部内容html
musics = [] #定义一个列表,存放歌名
for k in soup.find_all('div', class_='intro'): #,找到所有div并且class为'intro'的标签
for i in k.find_all('a'): #再找到所有a标签
musics.append(i.string) #i.string获取文本,并添加到列表
#写入文档
work = xlwt.Workbook()
sheet = wb.add_sheet('music') #设置sheet名
for index, music in enumerate(musics): #enumerate()方法获取索引值及数据
sheet.write(index, 0, index+1) #第一竖列写入编号
sheet.write(index, 1, music) #第二竖列写入歌名
try:
work.save('music.xls') #保存文档
except PermissionError as e:
print('访问拒绝,请先关闭文档!', e)
#执行
get_save_music("https://music.douban.com/chart")
执行成功后,文档如下: