基于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')

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 137,946评论 20 590
  • 在十二黄道星座中,政治地位最高的当属金牛座。因为金牛座正是天神宙斯本尊幻化而成,它的拉丁文是Taurus,星座符号...
    诗与星空阅读 249评论 0 0
  • 人们常说,什么是成功的商业模式?答曰,成功的商业模式应该是可复制、能带来利润的模式。对于药品供应链模式来说,此“成...
    燕子郭阅读 169评论 0 0
  • 毕业四年,大专汽车专业,干过机修,卖过新房二手房,开了两年汽车装具批发店。从最开始的月工资600,到现在月收入两万...
    超级懒羊羊阅读 62评论 0 0