基于Python语言的爬虫分析

豆瓣电影TOP250分析

引入相应的库

import re
import requests
from bs4 import BeautifulSoup
import pandas as pd

爬取豆瓣电影TOP250网页

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")

分析网页源码取得电影名称、评分和评价数

#电影中文名
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()))

#评价人数
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

 

将名称、评分和评价人数导入pandas的数据框

df = pd.DataFrame({'电影名称':names,'评分':scores,'评价人数':rates})
print df[200:250]
           电影名称    评价人数   评分
200    E.T. 外星人  138185  8.5
201        末路狂花   92308  8.7
202      忠犬八公物语   48135  9.0
203        哪吒闹海   70483  8.8
204         发条橙  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          曾经  188482  8.3
220        蓝色大门  252917  8.2
221        麦兜故事  117012  8.5
222       暖暖内含光  131747  8.4
223       无敌破坏王  169107  8.6
224          蝴蝶   89103  8.6
225        与狼共舞   51933  8.9
226    大卫·戈尔的一生   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        千钧一发   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

 

将结果保存至文件

df.to_csv('movie.csv',encoding='gbk')
相关链接
相关资源
  • 暂无相关资源