爬取豆瓣電影Top250和資料分析
import requests
from bs4 import BeautifulSoup
from pandas import DataFrame
'''
最後成功提取了
' 電影排名 ',' 電影名 ',' 上映時間 ',' 導演 ',' 主演 ',' 電影型別 ',' 電影評分 ',' 評價人數 ',' 電影連結 '
最後將結果輸出到了 豆瓣電影 Top250.xlsx
但是還存在問題:就是提取語言和製片國家 / 地區時,出現沒有 selector 的情況。
要解決該問題可能需要 xpath
'''
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36 Edg/92.0.902.55'}
start_num = [i for i in range(0,226,25)]
list_url_mv = [] # 所有電影的 URL
for start in start_num:
url = '{}&filter='.format(start)
print(' 正在處理 url : ',url)
response = requests.get(url=url, headers=headers)
soup = BeautifulSoup(response.text, 'html.parser')
url_mv_list = soup.select('#content > div > div.article > ol > li > div > div.info > div.hd > a')
# print(url_mv_list)
for index_url in range(len(url_mv_list)):
url_mv = url_mv_list[index_url]['href']
list_url_mv.append(url_mv)
# print(url_mv)
# 對每部電影進行處理
def loading_mv(url,number):
list_mv = []
print('----- 正在處理第 {} 部電影 -----'.format(number+1))
list_mv.append(number+1) # 排名
# 解析網頁
response_mv = requests.get(url=url,headers=headers)
soup_mv =外匯跟單gendan5.com BeautifulSoup(response_mv.text,'html.parser')
# 爬取電影名
mv_name = soup_mv.find_all('span',attrs={'property':'v:itemreviewed'}) # 電影名
mv_name = mv_name[0].get_text()
list_mv.append(mv_name)
# print(mv_name)
# 爬取電影的上映時間
mv_year = soup_mv.select('span.year') # 電影上映時間
mv_year = mv_year[0].get_text()[1:5]
list_mv.append(mv_year)
# print(mv_year)
# 爬取導演資訊
list_mv_director = [] # 導演
mv_director = soup_mv.find_all('a',attrs={'rel':"v:directedBy"})
for director in mv_director:
list_mv_director.append(director.get_text())
string_director = '/'.join(list_mv_director) # 重新定義格式
list_mv.append(string_director)
# print(list_mv_director)
# 爬取主演資訊
list_mv_star = [] # 主演
mv_star = soup_mv.find_all('span',attrs={'class':'actor'})
if mv_star == []: # 在第 210 部時沒有主演
list_mv.append(None)
else :
mv_star = mv_star[0].get_text().strip().split('/')
mv_first_star = mv_star[0].split(':')
list_mv_star.append(mv_first_star[-1].strip())
del mv_star[0] # 去除 ' 主演 ' 欄位
for star in mv_star:
list_mv_star.append(star.strip())
string = '/'.join(list_mv_star) # 重新定義格式
list_mv.append(string)
# 爬取電影型別
list_mv_type = [] # 電影型別
mv_type = soup_mv.find_all('span',attrs={'property':'v:genre'})
for type in mv_type:
list_mv_type.append(type.get_text())
string_type = '/'.join(list_mv_type)
list_mv.append(string_type)
# print(list_mv_type)
# 爬取電影評分
mv_score = soup_mv.select('strong.ll.rating_num') # 評分
mv_score = mv_score[0].get_text()
list_mv.append(mv_score)
# 爬取評價人數
mv_evaluation_num = soup_mv.select('a.rating_people') # 評價人數
mv_evaluation_num = mv_evaluation_num[0].get_text().strip()
list_mv.append(mv_evaluation_num)
# 爬取劇情簡介
mv_plot = soup_mv.find_all('span',attrs={"class":"all hidden"}) # 劇情簡介
if mv_plot == []:
list_mv.append(None)
else:
string_plot = mv_plot[0].get_text().strip().split()
new_string_plot = ' '.join(string_plot)
list_mv.append(new_string_plot)
# 加入電影網址
list_mv.append(url)
return list_mv
# url1 = '
# url2 = ' # 210 部
# a = loading_mv(url1,1)
# # b = loading_mv(url2,210)
# # list_all_mv.append(a)
# # list_all_mv.append(b)
list_all_mv = []
dict_mv_info = {}
for number in range(len(list_url_mv)):
mv_info = loading_mv(list_url_mv[number],number)
list_all_mv.append(mv_info)
print('----- 執行結束 -----')
pd = DataFrame(list_all_mv,columns=[' 電影排名 ',' 電影名 ',' 上映時間 ',' 導演 ',' 主演 ',' 電影型別 ',' 電影評分 ',' 評價人數 ',' 電影簡介 ',' 電影連結 '])
# print(pd)
pd.to_excel(r'C:\Users\86178\Desktop\ 豆瓣電影 Top250.xlsx')
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69946337/viewspace-2901599/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Python爬取分析豆瓣電影Top250Python
- 使用python爬取豆瓣電影TOP250Python
- scrapy入門:豆瓣電影top250爬取
- 豆瓣top250資料爬取
- scrapy爬取豆瓣電影資料
- 【python爬蟲案例】利用python爬取豆瓣電影TOP250評分排行資料!Python爬蟲
- 正規表示式_爬取豆瓣電影排行Top250
- python——豆瓣top250爬取Python
- 資料視覺化豆瓣電影 TOP250視覺化
- 豆瓣電影TOP250爬蟲及視覺化分析筆記爬蟲視覺化筆記
- python更換代理爬取豆瓣電影資料Python
- python爬蟲 爬取豆瓣電影 1-10 ajax 資料Python爬蟲
- 手把手教你網路爬蟲(爬取豆瓣電影top250,附帶原始碼)爬蟲原始碼
- 爬蟲教程——用Scrapy爬取豆瓣TOP250爬蟲
- 爬蟲01:爬取豆瓣電影TOP 250基本資訊爬蟲
- Python爬取豆瓣電影的短評資料並進行詞雲分析處理Python
- 【python爬蟲案例】利用python爬取豆瓣讀書評分TOP250排行資料Python爬蟲
- Python爬蟲筆記(4):利用scrapy爬取豆瓣電影250Python爬蟲筆記
- Python爬蟲教程-17-ajax爬取例項(豆瓣電影)Python爬蟲
- 專案之爬蟲入門(豆瓣TOP250)爬蟲
- 爬蟲如何爬取貓眼電影TOP榜資料爬蟲
- Springboot+JPA下實現簡易爬蟲--爬取豆瓣電視劇資料Spring Boot爬蟲
- java爬取豆瓣書籍資訊Java
- 教你用python登陸豆瓣並爬取影評Python
- Python爬取電影天堂Python
- Puppeteer 爬取豆瓣小組公開資訊
- 【Python爬蟲&資料分析】2018年電影,你看了幾部?Python爬蟲
- 擼個爬蟲,爬取電影種子爬蟲
- Python3爬取貓眼電影資訊Python
- 【Python】從0開始寫爬蟲——轉身扒豆瓣電影Python爬蟲
- Python反爬:利用js逆向和woff檔案爬取貓眼電影評分資訊PythonJS
- python爬取前程無憂和拉勾資料分析崗位並分析Python
- 豆瓣top250(go版以及python版)GoPython
- 批量抓取豆瓣電影圖片
- Python 從底層結構聊 Beautiful Soup 4(內建豆瓣最新電影排行榜爬取案例)Python
- 12 爬取目標的資料分析
- 手把手教你爬取優酷電影資訊-2
- 手把手教你爬取優酷電影資訊 -1