Python实现的爬取豆瓣电影信息功能攻略
1. 前言
随着互联网技术的快速发展,我们可以通过Python编写爬虫程序轻松地获取各种网站上的数据。本次攻略将教你如何使用Python爬虫爬取豆瓣电影的信息。
2. 爬虫流程
2.1 网页分析
在进行爬虫之前,我们首先需要对目标网站的页面结构进行分析。我们以豆瓣电影首页(https://movie.douban.com/)为例,该网站可以分为以下几个部分:
- banner区域
- 正在热映
- 北美票房榜
- Top250电影榜单
其中,我们将对“正在热映”区域进行信息爬取,获取每一部电影的名称、评分、封面图等信息。
2.2 获取网页源码
获取网页源码是爬虫的第一步。我们可以使用Python的requests库中的get()
方法获取指定URL页面的源码。
import requests
url = 'https://movie.douban.com/nowplaying/shanghai/'
headers = {"User-Agent":"Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:91.0) Gecko/20100101 Firefox/91.0"}
html = requests.get(url, headers=headers).text
print(html)
2.3 解析网页源码
得到网页源码后,我们需要对其进行解析,提取出所需的数据。使用Python的BeautifulSoup库可以轻松完成网页解析。
from bs4 import BeautifulSoup
soup = BeautifulSoup(html, 'html.parser')
# 定位正在热映区域
playing_ul = soup.find('ul', class_='lists')
movie_list = playing_ul.find_all('li', class_='list-item')
# 解析电影信息
for movie in movie_list:
name = movie['data-title'] # 获取电影名称
score = movie['data-score'] # 获取电影评分
image = movie.find('img')['src'] # 获取电影封面图
print(f'电影名称:{name},评分:{score},封面图:{image}')
2.4 存储爬取结果
最后,我们需要将爬取到的结果存储起来,以便后续的数据分析和使用。可以使用Python的pandas库将结果写入Excel文件中。
import pandas as pd
movie_data = []
for movie in movie_list:
name = movie['data-title'] # 获取电影名称
score = movie['data-score'] # 获取电影评分
image = movie.find('img')['src'] # 获取电影封面图
info = {
'name': name,
'score': score,
'image': image
}
movie_data.append(info)
df = pd.DataFrame(movie_data)
df.to_excel('movie.xlsx', index=False)
3. 示例说明
3.1 爬取豆瓣电影 Top250 榜单
除了爬取正在热映的电影信息外,我们还可以爬取豆瓣电影 Top250 榜单中的电影信息。只需要将url
更换为https://movie.douban.com/top250
即可。
3.2 爬取其它电影网站的信息
除了豆瓣电影,我们还可以使用同样的爬虫方法爬取其它电影网站的信息,如猫眼电影、电影票务等。只需要根据网站的页面结构和源码特征,进行相应的调整即可。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python实现的爬取豆瓣电影信息功能案例 - Python技术站