当前位置:   article > 正文

如何使用Python爬取豆瓣电影Top250的数据,并将结果保存到Excel文件中._page_url = f'{url}?start={start_num}'替换的应该是什么

page_url = f'{url}?start={start_num}'替换的应该是什么

一 . 安装所需的库

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

    1. import requests
    2. from bs4 import BeautifulSoup
    3. from openpyxl import Workbook
    4. 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二.解析网页内容,获取其中想要信息

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

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

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

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

    1. def douban_top250():
    2. # 网页的URL地址
    3. url = 'https://movie.douban.com/top250'
    4. # 设置请求头,模拟浏览器访问
    5. 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'}
    6. # 用于存储电影信息的列表
    7. movies = []
    8. # 使用循环爬取豆瓣电影Top250的每一页
    9. for start_num in range(0, 250, 25):
    10. page_url = f'{url}?start={start_num}'
    11. response = requests.get(page_url, headers=headers)
    12. soup = BeautifulSoup(response.text, 'html.parser')
    13. # 解析网页内容,提取电影名称和评分,并添加到movies列表中
    14. for movie in soup.select('.item'):
    15. title = movie.select_one('.title').text.strip()
    16. rating = movie.select_one('.rating_num').text.strip()
    17. movies.append((title, rating))
    18. # 返回电影信息列表
    19. return movies

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

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

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

         

  1. import requests
  2. from bs4 import BeautifulSoup
  3. from openpyxl import Workbook
  4. from openpyxl.styles import Font
  5. def douban_top250():
  6. url = 'https://movie.douban.com/top250'
  7. 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'}
  8. movies = []
  9. for start_num in range(0, 250, 25):
  10. page_url = f'{url}?start={start_num}'
  11. response = requests.get(page_url, headers=headers)
  12. soup = BeautifulSoup(response.text, 'html.parser')
  13. for movie in soup.select('.item'):
  14. title = movie.select_one('.title').text.strip()
  15. rating = movie.select_one('.rating_num').text.strip()
  16. movies.append((title, rating))
  17. return movies
  18. def create_excel(movies):
  19. wb = Workbook()
  20. ws = wb.active
  21. title_font = Font(color='FF0000', bold=True) # 设置标题的字体颜色为红色并加粗
  22. ws.append(['电影名称', '评分'])
  23. for cell in ws[1]:
  24. cell.font = title_font # 应用标题字体样式
  25. for movie in movies:
  26. ws.append(movie)
  27. wb.save('豆瓣_top250.xlsx')
  28. if __name__ == '__main__':
  29. movies = douban_top250()
  30. create_excel(movies)
  31. print('Excel文件已生成。')
  1. 最后,在程序中,首先调用douban_top250()函数来获取豆瓣电影Top250的数据,然后将数据传递给create_excel(movies)函数,将数据保存为Excel文件。最后,程序会输出"Excel文件已生成。"的提示信息。

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

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

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

     提取码:LLL

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/191222
推荐阅读
相关标签
  

闽ICP备14008679号