(.*?)
', re.S) 22 | 23 | def saveData(datalist, savepath): 24 | book = xlwt.Workbook(encoding="utf-8", style_compression=0) # 创建workbook对象 25 | sheet = book.add_sheet('豆瓣电影Top250', cell_overwrite_ok=True) # 创建工作表 26 | col = ("电影详情链接", "图片链接", "影片中文名", "影片外国名", "评分", "评价数", "概况", "相关信息") # 列名 27 | # 写入第一行 28 | for i in range(0, 8): 29 | sheet.write(0, i, col[i]) 30 | # 写入数据 31 | for i in range(0, 250): 32 | print("第%d条" % (i + 1)) 33 | data = datalist[i] 34 | for j in range(0, 8): 35 | sheet.write(i + 1, j, data[j]) 36 | book.save(savepath) # 保存 37 | 38 | 39 | def getData(baseurl): 40 | datalist = [] 41 | for i in range(0, 10): # 调用获取页面信息的函数,10次 42 | url = baseurl + str(i * 25) 43 | html = askURL(url) # 保存获取到的网页源码 44 | # 逐一解析数据 45 | soup = BeautifulSoup(html, "html.parser") 46 | for item in soup.find_all("div", class_="item"): # 查找符合要求的字符串,形成列表 47 | data = [] # 保存一部电影的所有信息 48 | item = str(item) 49 | # 影片详情链接 50 | link = re.findall(findLink, item)[0] # re库用来通过正则表达式查找指定字符串 51 | data.append(link) # 添加链接 52 | imgSrc = re.findall(findImgSrc, item)[0] 53 | data.append(imgSrc) # 添加图片 54 | titles = re.findall(findTitle, item) # 片名可能只有一个中文名,没有外国名 55 | if len(titles) == 2: 56 | ctitle = titles[0] # 添加中文名 57 | data.append(ctitle) 58 | otitle = titles[1].replace("/", "").replace(u'\xa0', '') # 去掉无关的符号 59 | data.append(otitle) # 添加外国名 60 | else: 61 | data.append(titles[0]) 62 | data.append("") # 外国名字留空 63 | rating = re.findall(findRating, item)[0] 64 | data.append(rating) # 添加评分 65 | judgeNum = re.findall(findJudge, item)[0] 66 | data.append(judgeNum) # 添加评价人数 67 | inq = re.findall(findInq, item) 68 | if len(inq) != 0: 69 | inq = inq[0].replace("。", "") # 去掉句号 70 | data.append(inq) # 添加概述 71 | else: 72 | data.append(" ") # 留空 73 | bd = re.findall(findBd, item)[0] 74 | bd = re.sub("请输入你的信息
34 |Copyright © 还不知道看什么电影吗? 174 | 豆瓣电影排行榜
175 |请输入你的信息
34 |Copyright © 还不知道看什么电影吗? 176 | 豆瓣电影排行榜
177 |