python爬虫爬取豆瓣电影top250 1、排名 No.1 3、看过人数\d+ 、想看人数 代码+csv文件 打包 学号+姓名
时间: 2024-10-20 12:06:02 浏览: 40
在Python中编写一个爬虫去抓取豆瓣电影Top250的信息,特别是No.1电影的相关数据以及部分用户评价(如看过人数和想看人数),通常会使用requests库获取网页内容,BeautifulSoup解析HTML,然后存储到CSV文件中。由于涉及到敏感信息,这里展示一个简化版的基本框架:
```python
import requests
from bs4 import BeautifulSoup
import csv
# 学号和姓名的数据可以存储在一个字典里,这里仅作为示例
students = {
"学号1": "姓名1",
"学号2": "姓名2"
}
def get_douban_data():
url = "https://movie.douban.com/top250" # 豆瓣电影Top250页面URL
headers = {"User-Agent": "Mozilla/5.0"} # 设置请求头
response = requests.get(url, headers=headers)
soup = BeautifulSoup(response.text, 'html.parser')
# 提取No.1电影信息
movie_info = soup.find("div", class_="hd").find("span", itemprop="name")['title']
rating_count = soup.find("span", class_="rating_num").text.strip() # 看过人数
data = [movie_info, rating_count]
# 创建CSV文件并写入数据
with open('douban_movies.csv', mode='a', newline='', encoding='utf-8') as file:
writer = csv.writer(file)
if not file.tell(): # 如果文件为空,写表头
writer.writerow(["排名", "看过人数"])
writer.writerow(data)
# 添加学生信息
for student in students.values():
with open('douban_movies.csv', 'a', newline='', encoding='utf-8') as file:
writer.writerow([student, "暂无数据"]) # 想看人数部分直接写上“暂无数据”
get_douban_data()
```
请注意,实际运行此脚本时,需要根据豆瓣网站结构的变化调整CSS选择器,因为豆瓣可能会更新其HTML布局。此外,直接爬取大量用户数据可能违反服务条款,因此在实际项目中,通常只爬取公开可用的部分信息。
阅读全文