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
相关推荐
IMPYLH5 分钟前
Lua 的 select 函数
java·开发语言·笔记·后端·junit·游戏引擎·lua
I_ltt_Itw,7 分钟前
Python多线程
服务器·python·pycharm
Hello.Reader9 分钟前
Flink SQL 数据类型从 INT 到 VARIANT 的完整实战指南
python·sql·flink
JienDa10 分钟前
JienDa聊PHP:知乎仿站实战中PHP框架的协同架构方略
开发语言·架构·php
hashiqimiya11 分钟前
android将json数据传递到后端springboot
java·开发语言
lijiatu1008611 分钟前
[C++] 上锁、解锁、获取锁、释放锁的区别
开发语言·c++
D***t13115 分钟前
Swift在iOS中的多任务处理
开发语言·ios·swift
mit6.82417 分钟前
C 语言仓库引入 Rust: MCUboot 为例
开发语言·rust
阿沁QWQ18 分钟前
STL和string实现
开发语言·c++
f***686019 分钟前
MS SQL Server partition by 函数实战二 编排考场人员
java·服务器·开发语言