豆瓣網站:https://movie.douban.com/chart
先上最后的代碼:
from bs4 import BeautifulSoup from lxml import html import xml import requests from fake_useragent import UserAgent #ua庫 import xlwt #表格模塊 n = [] #存放電影名稱 p = [] #存放電影評分 def get_url(): url = "https://movie.douban.com/chart" ua = UserAgent() headers={'user-agent':ua.random} f = requests.get(url,headers=headers) #Get該網頁從而獲取該html內容 soup = BeautifulSoup(f.text,'lxml') #用lxml解析器解析該網頁的內容, 好像f.content也是返回的html for k in soup.find_all('div',class_='pl2'): #找到div並且class為pl2的標簽 b = k.find('a') #在每個對應div標簽下找a標簽 n.append(b.get_text()) #取標簽 a 下的文字,並添加到 n 列表中 for i in soup.find_all('div',class_='star clearfix'): c = i.find_all('span') #在每個對應div標簽下找span標簽,會發現,一個a里面有四組span t = c[1].string,c[2].string #取相對應span中的字符串,評分和評價人數 p.append(t) #添加到 p 列表中 get_url() #獲取數據 style = xlwt.XFStyle() #初始化樣式模板 font = xlwt.Font() #初始化字體模板 pattern = xlwt.Pattern() #初始化背景顏色模板 alignment = xlwt.Alignment() #初始化單元格格式模板 font.name = 'Times New Roman' #指定字體 font.bold = True #加黑 font.height = 20*14 #字體 pattern.pattern = xlwt.Pattern.SOLID_PATTERN # 設置背景顏色的模式 pattern.pattern_fore_colour = 2 # 背景顏色 alignment.horz = 0x02 # 0x01(左端對齊)、0x02(水平方向上居中對齊)、0x03(右端對齊) alignment.vert = 0x01 # 0x00(上端對齊)、 0x01(垂直方向上居中對齊)、0x02(底端對齊) #alignment.wrap = 1 # 設置自動換行 style.font = font #應用到style中 style.pattern = pattern # style.alignment = alignment #應用到style中 workbook = xlwt.Workbook() worksheel = workbook.add_sheet('豆瓣電影排行榜') #創建一個新表格 worksheel.write(0,0,'電影名',style) #填寫行、列、值 worksheel.write(0,1,'評分',style) for x in range(1,11): for y in range(0,2): if y == 0: worksheel.write(x,y,label=n[x-1]) elif y == 1: worksheel.write(x,y,label=p[x-1]) workbook.save(r"C:\Users\fan\Desktop\豆瓣影評.xls") #創建excel表
效果圖:
思路:
1、進入網頁—>F12—>右擊影名—>檢查—>查看相對應的html代碼
發現影名是存在<div class="pl2">標簽下的<a>標簽中,使用requests+BeautifulSoup庫獲取
評分和評價人數存儲在<div class="star clearfix">下的<span>標簽中。
所涉及到的庫,全部是前文《爬蟲常用庫》中有介紹。