寒假第二十二天
Day 1: 数据爬取与初步清洗
目标:完成数据爬取,存储为结构化文件(如CSV)。
任务与进展:
-
选择数据源:
-
爬取豆瓣电影Top250数据(标题、评分、导演、简介等)。
-
使用Python的
requests和BeautifulSoup库编写爬虫脚本。
-
-
解决反爬问题:
-
添加请求头(
User-Agent、Referer)模拟浏览器访问。 -
设置随机延迟(
time.sleep(random.uniform(1,3)))避免触发反爬机制。
-
-
数据存储:
-
将爬取结果保存到
movies.csv文件,初步处理缺失值(如无导演信息的填充为“未知”)。
-
代码片段:
import requests
from bs4 import BeautifulSoup
import csv
url = "https://movie.douban.com/top250"
headers = {"User-Agent": "Mozilla/5.0"}
response = requests.get(url, headers=headers)
soup = BeautifulSoup(response.text, "html.parser")
with open("movies.csv", "w", newline="", encoding="utf-8") as file:
writer = csv.writer(file)
writer.writerow(["标题", "评分", "导演", "简介"])
for item in soup.find_all("div", class_="item"):
title = item.find("span", class_="title").text
rating = item.find("span", class_="rating_num").text
director = item.find("div", class_="bd").p.text.split("导演:")[1].split("\n")[0] if "导演:" in item.text else "未知"
writer.writerow([title, rating, director])
问题与解决:
-
反爬封锁:通过添加随机延迟和更换IP代理解决。
-
数据字段错位:使用
try-except捕获异常并填充默认值。

浙公网安备 33010602011771号