请使用【Python】写访问豆瓣电影(https://movie.douban.com/top250?start={i}&filter=)Top250,获取每部电影的排名、中文片名、评分、评价人数及其对应的链接等信息,并将获取到的信息保存至JSON文件中。
时间: 2024-09-30 19:08:30 浏览: 27
在Python中,我们可以使用`requests`库来发送HTTP请求获取网页内容,然后使用`BeautifulSoup`库解析HTML并提取所需的数据。下面是一个简单的示例,展示如何编写这样的脚本:
```python
import requests
from bs4 import BeautifulSoup
import json
# 定义起始页数
start = 0
end = 10 # 这里假设我们只抓取前10页
# 函数用于从单个页面提取数据
def extract_data(url):
response = requests.get(url)
soup = BeautifulSoup(response.text, 'lxml')
movie_list = []
for item in soup.find_all('div', class_='hd'):
rank = item.find('span', class_='title').text.strip()
title = item.find('a')['title']
rating = item.find('span', class_='rating_num')['class'][0][7:]
review_count = item.find('span', class_='pl').text.strip().split()[0]
link = f"https://movie.douban.com{item.find('a')['href']}"
movie_data = {
"排名": rank,
"片名": title,
"评分": rating,
"评论人数": review_count,
"链接": link
}
movie_list.append(movie_data)
return movie_list
# 主函数,遍历并保存数据
def main():
movies = []
for i in range(start, end + start, 25): # 取间隔为25,因为每个页面25条数据
url = f"https://movie.douban.com/top250?start={i}&filter="
movies.extend(extract_data(url))
with open('movies.json', 'w', encoding='utf-8') as f:
json.dump(movies, f, ensure_ascii=False, indent=4)
if __name__ == "__main__":
main()
阅读全文