爬虫 list index out of range 求助
有没有大佬可以帮我检查一下... 应该是小问题... 但是我已经看了好几个小时了呜呜#-*- coding = utf-8 -*-
from bs4 import BeautifulSoup # 网页解析,获取数据
import re #正则表达式,进行文字匹配
import urllib.request,urllib.error #制定URL,获取网页数据
import xlwt #进行excel操作
import sqlite3 #进行SQLite数据库操作
def main():
baseurl = 'https://book.douban.com/top250?start=0'
#1.爬取网页
datalist = getData(baseurl)
savepath = '.\\豆瓣图书Top250.xls' #保存在当前位置
#3.保存数据
saveData(datalist,savepath)
#askURL("https://movie.douban.com/top250?start=")
#找到图书的相关内容
findDs = re.compile(r'<span class="inq">(.*?)</span></p>',re.S)
def getData(baseurl):
datalist = []
URL = baseurl
html = askURL(URL) #保存获取到的网页源码
#2.逐一解析数据
soup = BeautifulSoup(html,"html.parser")
for item in soup.find_all('p',class_='quote'):
#查找符合要求的字符串,形成列表
data = []
item = str(item)
describe = re.findall(findDs, item)
data.append(describe) #添加描述到data
print(datalist)
return datalist
#得到指定一个URL的网页内容
def askURL(URL):
head = {"User-Agent":" Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.102 Safari/537.36"}
#模拟浏览器头部信息,向豆瓣服务器发送消息
#用户代理表示告诉豆瓣服务器我们是什么类型的机器、浏览器
#(本质上是告诉浏览器我们可以接受什么水平的文件内容)
request = urllib.request.Request(URL,headers=head)
html = ""
try:
response = urllib.request.urlopen(request)
html = response.read().decode("utf-8")
#print(html)
except urllib.error.URLError as e:
if hasattr(e,"code"):
print(e.code)
if hasattr(e,"reason"):
print(e.reason)
return html
#保存数据
def saveData(datalist,savepath):
print('save...')
book = xlwt.Workbook(encoding="utf-8",style_compression=0) #创建workbook对象
sheet = book.add_sheet('图书Top250',cell_overwrite_ok=(True))#创建工作表
sheet.write(0,0,'描述')#列名
for i in range(0,25):
print(i)
#print("第%d条"%i)
data = datalist
for j in range(0,1):
sheet.write(i+1,j,data)
book.save('图书描述.xls')#保存
if __name__ == '__main__':#u当程序执行时
#调用函数
main()
我在爬取豆瓣图书top排行版的第一页的数据:https://book.douban.com/top250
运行总是在保存数据的 data = datalist报错 out of range...
不知道有没有人可以帮帮呜呜 我已经解决了,,,,,,,, 服了 暴风雨哭泣
页:
[1]