python爬蟲系列之豆瓣電影top250原始碼
阿新 • • 發佈:2022-05-27
import requests import re import csv url = 'https://movie.douban.com/top250?start=0&filter=' for i in range(0,226,25): #總共10頁 每一頁資料25條 url裡的i表示第幾頁 url = f'https://movie.douban.com/top250?start={i}&filter=' #設定請求頭 headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36'} resp = requests.get(url=url,headers = headers) #獲取頁面原始碼 page_content = resp.text resp.close() #解析資料:主要通過正則表示式 惰性匹配拿到電影名稱上映年份以及豆瓣評分 #先設定正則匹配規則 obj = re.compile(r'<li>.*?<div class="item">.*? <span class="title">(?P<name>.*?)</span>' r'.*?<br>(?P<year>.*?) ' r'.*?<span class="rating_num" property="v:average">(?P<score>.*?)</span>',re.S) #將page_content丟到設定好的規則裡面 result = obj.finditer(page_content) #將資料寫入CSV檔案 或者也可以更改為excel檔案 f = open('date.csv',mode='a+',newline='') csvwrite = csv.writer(f) for i in result: dic = i.groupdict() dic['year'] = dic['year'].strip() csvwrite.writerow(dic.values()) print('over!!') #每一頁爬取完了列印over!! f.close() print('爬取完畢!~~')