用Python 生成爬虫代码 网址https://movie.douban.com/ 爬取电影图片保存到文件夹 爬取电影名,导演,评分,评价数,演员保存到txt文件并生成个电影的评价人数柱状图
时间: 2024-03-01 20:49:32 浏览: 171
基于Python对豆瓣电影数据爬虫的设计与实现.docx
5星 · 资源好评率100%
好的,以下是使用 Python 爬取豆瓣电影网站电影图片并保存到本地文件夹,爬取电影名、导演、评分、评价数、演员并保存到本地 txt 文件,并生成电影评价人数的柱状图的示例代码:
```python
import requests
from bs4 import BeautifulSoup
import os
import matplotlib.pyplot as plt
# 要爬取的网页地址
url = 'https://movie.douban.com/'
# 发起 GET 请求,获取网页内容
response = requests.get(url)
# 使用 BeautifulSoup 解析网页内容
soup = BeautifulSoup(response.text, 'html.parser')
# 找到网页中所有电影的链接、图片、电影名、导演、评分、评价数和演员
movie_links = soup.find_all('a', class_='item-title')
movie_imgs = soup.find_all('img', class_='posters')
movie_names = soup.find_all('span', class_='title')
movie_directors = soup.find_all('p', class_='')
movie_ratings = soup.find_all('span', class_='rating_num')
movie_comments = soup.find_all('div', class_='star')
movie_actors = soup.find_all('p', class_='')
# 创建保存图片的文件夹
if not os.path.exists('movie_posters'):
os.mkdir('movie_posters')
# 保存电影图片到本地文件夹
for img in movie_imgs:
img_url = img.get('src')
img_name = img_url.split('/')[-1]
img_path = os.path.join('movie_posters', img_name)
with open(img_path, 'wb') as f:
f.write(requests.get(img_url).content)
# 将电影信息保存到本地 txt 文件
with open('movie_info.txt', 'w', encoding='utf-8') as f:
for i in range(len(movie_names)):
name = movie_names[i].text
director = movie_directors[i].text.split('导演: ')[-1].split('主演')[0].strip()
rating = movie_ratings[i].text
comment = movie_comments[i].text.split('人评价')[0]
actors = movie_actors[i].text.split('主演: ')[-1].strip()
f.write(f'{name}\n导演:{director}\n评分:{rating}\n评价数:{comment}\n演员:{actors}\n\n')
# 生成电影评价人数的柱状图
comments = [int(comment.text.split('人评价')[0]) for comment in movie_comments]
plt.bar(range(len(comments)), comments)
plt.title('电影评价人数柱状图')
plt.xlabel('电影序号')
plt.ylabel('评价人数')
plt.show()
```
这段代码使用 requests 库发起 GET 请求获取豆瓣电影网站的主页,然后使用 BeautifulSoup 库解析网页内容,找到所有电影的链接、图片、电影名、导演、评分、评价数和演员,保存电影图片到本地文件夹,将电影信息保存到本地 txt 文件,并生成电影评价人数的柱状图。
阅读全文