寒假第二十二天

Day 1: 数据爬取与初步清洗

目标:完成数据爬取,存储为结构化文件(如CSV)。

任务与进展

  1. 选择数据源

    • 爬取豆瓣电影Top250数据(标题、评分、导演、简介等)。

    • 使用Python的requestsBeautifulSoup库编写爬虫脚本。

  2. 解决反爬问题

    • 添加请求头(User-AgentReferer)模拟浏览器访问。

    • 设置随机延迟(time.sleep(random.uniform(1,3)))避免触发反爬机制。

  3. 数据存储

    • 将爬取结果保存到movies.csv文件,初步处理缺失值(如无导演信息的填充为“未知”)。

代码片段

python
复制
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捕获异常并填充默认值。

posted @ 2025-02-14 14:35  努力不掉发  阅读(14)  评论(0)    收藏  举报