我平时喜欢看电影,也会习惯性参考豆瓣电影评分,而豆瓣对于爬虫爱好者是很友好的,没有太多反爬措施,对新手是很友好的。
本文将爬取豆瓣电影 TOP 250榜单的数据进行可视化,主要用了 BeautifulSoup
, pandas
, Matplotlib
等数据分析常用的库。
数据爬取
首先打开页面,进入调试模式,我们会看到如下页面:
如图所示,我们可以很直观的看到数据,图示信息就是我们本次要爬取的信息。
接下来,点击页面最下面的翻页,我们注意到第 2 页的地址为:movie.douban.com/top250?star… 第 3 页的地址为:movie.douban.com/top250?star…
不难发现其规律,那就开始写代码吧。
import os
import matplotlib.pyplot as plt
import pandas as pd
import requests
from bs4 import BeautifulSoup
def movies_spider():
records = []
for start in (range(250)[::25]):
url = f"https://movie.douban.com/top250?start={start}"
response = requests.get(url).text
soup = BeautifulSoup(response, 'html.parser')
movie_list = soup.find_all(class_='item')
for item in movie_list:
rank = int(item.find('em').string) # 排名
pic = item.find(class_='pic')
href = pic.find('a')['href'] # 链接
info = item.find(class_=