您当前的位置:首页 > 文章 > Python经典案例爬取豆瓣Top250电影数据

Python经典案例爬取豆瓣Top250电影数据

作者:Roc-xb 时间:2024-05-16 阅读数:396 人阅读

随着网络数据的日益丰富,如何从海量的信息中快速、准确地提取出有价值的数据,成为了许多开发者和技术爱好者关注的焦点。在这个过程中,网络爬虫技术凭借其强大的数据获取能力,成为了数据分析和挖掘的重要工具。本文将通过一个经典案例——使用Python爬取豆瓣Top250电影数据,来介绍网络爬虫的基本原理和实际操作方法。豆瓣电影作为国内知名的电影评分和评论平台,其Top250榜单汇聚了众多经典影片。通过爬取这些数据,我们可以对电影市场进行更深入的分析。本文将实现豆瓣Top250电影数据的简单爬取。 

代码如下:

import random
import time
import requests
from lxml import etree
import pandas as pd
from fake_useragent import UserAgent
 
# 生成随机的 User-Agent
ua = UserAgent()
 
# 存储所有电影信息的列表
all_movies = []
 
# 循环爬取多页数据
for i in range(0, 250, 25):  # 每页有25部电影,共250部电影
    url = f"https://movie.douban.com/top250?start={i}&filter="
    headers = {"User-Agent": ua.random}  # 随机选择一个 User-Agent
    response = requests.get(url=url, headers=headers)
    html = etree.HTML(response.text)
    rank = html.xpath('//div[@class="pic"]/em/text()')  # 排名
    name = html.xpath('//div[@class="hd"]/a/span[1]/text()')  # 电影名
    score = html.xpath('//*[@id="content"]/div/div[1]/ol/li/div/div[2]/div[2]/div/span[2]/text()')  # 评分
    people = html.xpath('//div[@class="star"]/span[4]/text()')  # 评分人数
    tu = list(zip(rank, name, score, people))
    all_movies.extend(tu)
    time.sleep(random.uniform(1, 2))  # 1-2秒再进行一次循环
 
df = pd.DataFrame(all_movies, columns=['排名', '电影名', '评分', '评分人数']) 
print(df)
 
# 输出表格
df.to_excel('top250_movies.xlsx', index=False)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/qq_19309473/article/details/138731339

本站大部分文章、数据、图片均来自互联网,一切版权均归源网站或源作者所有。

如果侵犯了您的权益请来信告知我们删除。邮箱:1451803763@qq.com