資源簡介
利用python爬蟲技術爬取豆瓣top250的信息并保存為excel文件
代碼片段和文件信息
#-*-?coding?=?utf-8?-*-
#@Time?:?2020/12/23?8:34
#@File?:?spyder.py
#@Software:?PyCharm
from?bs4?import?BeautifulSoup??#?網頁解析,獲取數據
import?re??#?正則表達式,進行文字匹配
import?urllib.requesturllib.error??#?指定URL,獲取網頁數據
import?xlwt??#?進行excel操作
import?sqlite3??#?進行SQLite數據庫操作
def?main():
????baseurl?=?“https://movie.douban.com/top250?start=“
????#?1.爬取網頁
????datalist?=?getData(baseurl)
????savepath?=?“豆瓣電影.xls“
????#?3.保存數據
????saveData(datalistsavepath)
????#askURL(“https://movie.douban.com/top250?start=“)
#影片詳情鏈接的規則
findlink?=?re.compile(r‘‘)?????#創建正則表達式對象,表示規則(字符串的模式)
#影片圖片
findImgSrc?=?re.compile(r‘ #影片片名
findtitle?=?re.compile(r‘tle“>(.*)‘)
#影片評分
findRating?=?re.compile(r‘(.*)‘)
#找到評價人數
findJudge?=?re.compile(r‘(\d*)人評價‘)
#找到概況
findInq?=?re.compile(r‘(.*)‘)
#找到影片的相關內容
findBd?=?re.compile(r‘(.*?)
‘re.S)
#?爬取網頁
def?getData(baseurl):
????datalist?=?[]
????for?i?in?range(010):??????#調用獲取頁面信息的函數?,10次
????????url?=?baseurl?+?str(i*25)
????????html?=?askURL(url)?????#保存獲取到的網頁源碼
??????#?2.逐一解析數據
????????soup?=?BeautifulSoup(html“html.parser“)
????????for?item?in?soup.find_all(‘div‘class_=“item“):????#查找符合要求的字符串,形成列表
????????????#print(item)???#測試:查看電影item全部信息
????????????data?=?[]??#保存一部電影的所有信息
????????????item?=?str(item)
????????????#影片詳情的鏈接
????????????link?=?re.findall(findlinkitem)[0]????????????#re庫用來通過正則表達式查找指定的字符串
????????????data.append(link)??????????????????????????????#添加鏈接
????????????imgSrc?=?re.findall(findImgSrcitem)[0]
????????????data.append(imgSrc)????????????????????????????#添加圖片
????????????titles?=?re.findall(findtitleitem)????????????#片名可能只有一個中文名,沒有外國名
????????????if(len(titles)?==?2):
????????????????ctitle?=?titles[0]?????????????????????????#添加中文名
????????????????data.append(ctitle)
????????????????otitle?=?titles[1].replace(“/“““)?????????#去掉無關的符號
????????????????data.append(otitle)????????????????????????#添加外國名
????????????else:
????????????????data.append(titles[0])
????????????????data.append(‘?‘)???????????????????????????#外國名字留空
????????????rating?=?re.findall(findRatingitem)[0]
????????????data.append(rating)?????????????????????????????#添加評分
????????????judgeNum?=?re.findall(findJudgeitem)[0]
????????????data.append(judgeNum)???????????????????????????#添加評價人數
????????????inq?=?re.findall(findInqitem)
????????????if?len(inq)?!=?0:
????????????????inq?=?inq[0].replace(“。“““)??????????????????#去掉句號
????????????????data.append(inq)????????????????????????????#?添加概述
????????????else:
????????????????data.append(“?“)????????????????????????????#留空
????????????bd?=?re.findall(findBditem)[0]
????????????bd?=?re.sub(‘
(\s+)?‘“?“bd)????????#去掉
????????????bd?=?re.sub(‘/‘“?“bd)????????????????????????#替換
????????????data.a
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????5472??2020-12-30?23:54??python爬蟲爬取豆瓣電影信息\spyder.py
?????文件??????129024??2020-12-23?08:35??python爬蟲爬取豆瓣電影信息\豆瓣電影Top250.xls
?????目錄???????????0??2020-12-30?23:52??python爬蟲爬取豆瓣電影信息\
評論
共有 條評論