豆瓣電影TOP250分析
引入相應(yīng)的庫
import re
import requests
from bs4 import BeautifulSoup
import pandas as pd
爬取豆瓣電影TOP250網(wǎng)頁
url = 'http://movie.douban.com/top250?format=text'
page = requests.get(url)
page.raise_for_status()
page.encoding = page.apparent_encoding
contents = page.text
for i in range(1,10):
url = 'https://movie.douban.com/top250?start=' + str(i*25) + '&filter='
page = requests.get(url)
page.raise_for_status()
page.encoding = page.apparent_encoding
contents += page.text
soup = BeautifulSoup(contents, "html.parser")
分析網(wǎng)頁源碼取得電影名稱、評分和評價數(shù)
#電影中文名
names = []
for tag in soup.find_all(attrs={'class':'title'}):
if not tag.get_text().startswith(u'\xa0/\xa0'):
names.append(tag.get_text())
#電影評分
scores = []
for tag in soup.find_all(attrs={'class':'rating_num'}):
scores.append(float(tag.get_text()))
#評價人數(shù)
rates = []
for tag in soup.find_all(attrs={'class':'star'}):
rtag = tag.find_all('span')[-1]
rates.append(int(rtag.string[:-3]))
print len(rates)
250
?
將名稱、評分和評價人數(shù)導(dǎo)入pandas的數(shù)據(jù)框
df = pd.DataFrame({'電影名稱':names,'評分':scores,'評價人數(shù)':rates})
print df[200:250]
電影名稱 評價人數(shù) 評分
200 E.T. 外星人 138185 8.5
201 末路狂花 92308 8.7
202 忠犬八公物語 48135 9.0
203 哪吒鬧海 70483 8.8
204 發(fā)條橙 169634 8.4
205 穆赫蘭道 210412 8.3
206 源代碼 373998 8.3
207 黑客帝國3:矩陣革命 138507 8.5
208 青蛇 195070 8.4
209 非常嫌疑犯 104068 8.6
210 美國麗人 167621 8.4
211 新龍門客棧 164140 8.4
212 黃金三鏢客 45060 9.1
213 上帝也瘋狂 87443 8.6
214 無恥混蛋 202801 8.4
215 城市之光 37176 9.2
216 愛·回家 42877 9.0
217 勇士 79406 8.9
218 初戀這件小事 415451 8.2
219 曾經(jīng) 188482 8.3
220 藍(lán)色大門 252917 8.2
221 麥兜故事 117012 8.5
222 暖暖內(nèi)含光 131747 8.4
223 無敵破壞王 169107 8.6
224 蝴蝶 89103 8.6
225 與狼共舞 51933 8.9
226 大衛(wèi)·戈?duì)柕囊簧? 76123 8.7
227 巴黎淘氣幫 97753 8.6
228 遺愿清單 111907 8.5
229 國王的演講 307905 8.3
230 血鉆 115210 8.5
231 夜訪吸血鬼 181608 8.3
232 模仿游戲 224186 8.5
233 偷拐搶騙 105440 8.5
234 荒島余生 118664 8.4
235 愛在暹羅 206134 8.3
236 中央車站 70791 8.7
237 兩小無猜 296971 8.1
238 千鈞一發(fā) 72714 8.7
239 月球 128270 8.5
240 瘋狂的石頭 275919 8.2
241 槍火 86582 8.6
242 罪惡之城 130221 8.4
243 壽司之神 72490 8.8
244 愛在午夜降臨前 100100 8.7
245 我愛你 48561 9.0
246 廊橋遺夢 87429 8.5
247 角斗士 118428 8.4
248 假如愛有天意 209976 8.2
249 黑鷹墜落 97560 8.5
將結(jié)果保存至文件
df.to_csv('movie.csv',encoding='gbk')