如何使用Python爬取豆瓣电影Top250的数据,并将结果保存到Excel文件中.

一 . 安装所需的库

首先,请确保你已经安装了这些库。这里导入了requests库用于发送HTTP请求,BeautifulSoup库用于解析HTML内容,以及openpyxl库用于生成以及操作Excel文件。

  1. import requests
    from bs4 import BeautifulSoup
    from openpyxl import Workbook
    from openpyxl.styles import Font

    如果还没有安装,查看下面教程安装它们:

    安装方式: 打开命令行或终端,这里我使用的是PyCharm,在其左下角找到终端

    c15da3569cc14ec795a0e80cb4f575cd.png

    (1).requests库:用于发送HTTP请求和获取网页内容。

           在终端页面终端,输入以下命令并按Enter执行:

    pip install requests
    

    (2).beautifulsoup4库:用于解析HTML和XML文档。

         在终端页面终端,输入以下命令并按Enter执行:

    pip install beautifulsoup4
    

     (3).openpyxl库:用于生成以及操作Excel文件。

         在终端页面终端,输入以下命令并按Enter执行:

    pip install openpyxl
    

    (4).如何查看是否安装成功

    2d79fb3ff02f4b4f9655033833bd79aa.jpeg二.解析网页内容,获取其中想要信息

  2. 分析豆瓣电影Top250网页
    (https://movie.douban.com/top250),右键检查查看网页代码
    27fba7cea497459ba1ab3add52c70726.png

    查看网页源码可以知道,每个<li></li>标签中包含一部电影的信息,然后使用for循环根据图中所圈的3个class类名('.item','.title','.rating_num')提取电影名称和评分.

  3. 接下来定义了两个主要的函数:

  4. douban_top250():这个函数用于爬取豆瓣电影Top250的数据。它首先构建豆瓣电影Top250的URL,然后循环遍历不同页面,发送请求,解析页面内容,提取电影名称和评分,并将其保存在一个名为movies的列表中。

  5. def douban_top250():
        # 网页的URL地址
        url = 'https://movie.douban.com/top250'
        # 设置请求头,模拟浏览器访问
        headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36 Edg/114.0.1823.79'}
    
        # 用于存储电影信息的列表
        movies = []
    
        # 使用循环爬取豆瓣电影Top250的每一页
        for start_num in range(0, 250, 25):
            page_url = f'{url}?start={start_num}'
            response = requests.get(page_url, headers=headers)
            soup = BeautifulSoup(response.text, 'html.parser')
    
            # 解析网页内容,提取电影名称和评分,并添加到movies列表中
            for movie in soup.select('.item'):
                title = movie.select_one('.title').text.strip()
                rating = movie.select_one('.rating_num').text.strip()
                movies.append((title, rating))
    
        # 返回电影信息列表
        return movies
    

    create_excel(movies):这个函数用于将爬取到的电影数据保存为Excel文件。它创建一个新的Excel文件,将电影名称和评分写入Excel表格,并设置标题的字体样式为红色并加粗。

  6. def create_excel(movies):
        wb = Workbook()
        ws = wb.active
    
        title_font = Font(color='FF0000', bold=True)  # 设置标题的字体颜色为红色并加粗
        ws.append(['电影名称', '评分'])
    
        for cell in ws[1]:
            cell.font = title_font  # 应用标题字体样式
    
        for movie in movies:
            ws.append(movie)
    
        wb.save('豆瓣_top250.xlsx')

    上面讲解的是思路,最终代码如下

         

import requests
from bs4 import BeautifulSoup
from openpyxl import Workbook
from openpyxl.styles import Font

def douban_top250():
    url = 'https://movie.douban.com/top250'
    headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36 Edg/114.0.1823.79'}

    movies = []

    for start_num in range(0, 250, 25):
        page_url = f'{url}?start={start_num}'
        response = requests.get(page_url, headers=headers)
        soup = BeautifulSoup(response.text, 'html.parser')

        for movie in soup.select('.item'):
            title = movie.select_one('.title').text.strip()
            rating = movie.select_one('.rating_num').text.strip()
            movies.append((title, rating))

    return movies

def create_excel(movies):
    wb = Workbook()
    ws = wb.active

    title_font = Font(color='FF0000', bold=True)  # 设置标题的字体颜色为红色并加粗
    ws.append(['电影名称', '评分'])

    for cell in ws[1]:
        cell.font = title_font  # 应用标题字体样式

    for movie in movies:
        ws.append(movie)

    wb.save('豆瓣_top250.xlsx')

if __name__ == '__main__':
    movies = douban_top250()
    create_excel(movies)
    print('Excel文件已生成。')
  1. 最后,在程序中,首先调用douban_top250()函数来获取豆瓣电影Top250的数据,然后将数据传递给create_excel(movies)函数,将数据保存为Excel文件。最后,程序会输出"Excel文件已生成。"的提示信息。

  2. 具体代码运行效果图如下

     7af76d4f2edc40f0b1f002d227645e33.png579f465f78fb4213804b6a662d49a0fb.png以上本期讲解的全部内容,欢迎大家的指正。

       以下链接为源码有需要的可以自取:       
     链接:https://pan.baidu.com/s/1mqnMrjz3DSInewx8h3ecPA?pwd=LLLL

     提取码:LLL

爬虫(Web Crawler)是一种自动化程序,用于从互联网上收集信息。其主要功能是访问网页、提取数据并存储,以便后续分析或展示。爬虫通常由搜索引擎、数据挖掘工具、监测系统等应用于网络数据抓取的场景。 爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL可以通过链接分析、站点地图、搜索引擎等方式获取。 请求网页: 爬虫使用HTTP或其他协议向目标URL发起请求,获取网页的HTML内容。这通常通过HTTP请求库实现,如Python的Requests库。 解析内容: 爬虫对获取的HTML进行解析,提取有用的信息。常用的解析工具有正则表达式、XPath、Beautiful Soup等。这些工具帮助爬虫定位和提取目标数据,如文本、图片、链接等。 数据存储: 爬虫将提取的数据存储到数据库、文件或其他存储介质,以备后续分析或展示。常用的存储形式包括关系型数据库、NoSQL数据库、JSON文件等。 遵守规则: 为避免对网站造成过大负担或触发反爬虫机制,爬虫需要遵守网站的robots.txt协议,限制访问频率和深度,并模拟人类访问行为,如设置User-Agent。 反爬虫应对: 由于爬虫的存在,一些网站采取了反爬虫措施,如验证码、IP封锁等。爬虫工程师需要设计相应的策略来应对这些挑战。 爬虫在各个领域都有广泛的应用,包括搜索引擎索引、数据挖掘、价格监测、新闻聚合等。然而,使用爬虫需要遵守法律和伦理规范,尊重网站的使用政策,并确保对被访问网站的服务器负责。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值