python爬虫豆瓣top250

注意

1,BeautifulSoup lxml解析器安装

2,代码缩进格式

复制代码
f.close()
python 复制代码
import csv

import requests
from bs4 import BeautifulSoup

# 请求头部
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36'
}


# 解析页面函数
def parse_html(html):
    # soup = BeautifulSoup(html, 'html.parser')
    soup = BeautifulSoup(html, 'lxml')
    movie_list = soup.find('ol', class_='grid_view').find_all('li')
    # print("response movie_list", movie_list)

    for movie in movie_list:
        title = movie.find('div', class_='hd').find('span', class_='title').get_text()
        rating_num = movie.find('div', class_='star').find('span', class_='rating_num').get_text()
        comment_num = movie.find('div', class_='star').find_all('span')[-1].get_text()
        writer.writerow([title, rating_num, comment_num])


# 保存数据函数
def save_data():
    f = open('douban_movie_top250.csv', 'a', newline='', encoding='utf-8-sig')

    global writer
    writer = csv.writer(f)
    writer.writerow(['电影名称', '评分', '评价人数'])
    for i in range(10):
        url = 'https://movie.douban.com/top250?start=' + str(i * 25) + '&filter='
        response = requests.get(url, headers=headers)
        # print("response text", response.text)
        parse_html(response.text)
    f.close()


if __name__ == '__main__':
    save_data()

# 1,BeautifulSoup lxml 解析器安装
# 2,BeautifulSoup 如何引入第三方库 BeautifulSoup lxml,默认是导入的是python内置的解析器
#
# 1. 安装 Python 和 pip
# 确保你已经安装了 Python 和 pip。你可以在终端中运行以下命令来检查是否已安装:
#
# bash
# python3 --version
# pip3 --version
# 如果没有安装 Python 3,可以从 Python 官网 下载并安装 Python 3。通常,安装 Python 后 pip 会自动安装。
#
# 2. 安装 BeautifulSoup 和 lxml
# 安装 beautifulsoup4
# BeautifulSoup 是一个用于解析 HTML 和 XML 的库,通常与 beautifulsoup4 包一起使用。
#
# 在终端中输入以下命令来安装 beautifulsoup4:
#
# bash
# pip3 install beautifulsoup4
相关推荐
yanghuashuiyue20 小时前
lambda+sealed+record
java·开发语言
Zzz 小生21 小时前
LangChain Streaming-Overview:流式处理使用完全指南
人工智能·python·语言模型·langchain·github
yzx99101321 小时前
Python数据结构入门指南:从基础到实践
开发语言·数据结构·python
百锦再21 小时前
Jenkins 全面精通指南:从入门到脚本大师
运维·后端·python·servlet·django·flask·jenkins
衍生星球21 小时前
【JSP程序设计】Servlet对象 — page对象
java·开发语言·servlet·jsp·jsp程序设计
扶苏瑾21 小时前
线程安全问题的产生原因与解决方案
java·开发语言·jvm
FYKJ_20101 天前
springboot大学校园论坛管理系统--附源码42669
java·javascript·spring boot·python·spark·django·php
Loo国昌1 天前
【AI应用开发实战】 03_LangGraph运行时与状态图编排:从直接执行到图编排的演进之路
人工智能·后端·python·自然语言处理·prompt
ValhallaCoder1 天前
hot100-堆
数据结构·python·算法·
小小小米粒1 天前
函数式接口 + Lambda = 方法逻辑的 “插拔式解耦”
开发语言·python·算法