task1 - 爬取豆瓣Top250电影名

本文介绍了如何爬取并保存豆瓣Top250电影名。通过requests库获取网页HTML,解析HTML获取电影名,利用翻页规律进行多页爬取,并将数据保存至本地。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

豆瓣Top250电影名怎么爬

参考博文:https://www.cnblogs.com/leon507/p/7614345.html

怎么实现

因为没有系统学习过,所以只能做搬运工。看了几篇有关爬取豆瓣Top250的电影信息,这篇是最简单易懂的了,所以摘过来学习学习。但这个博主的代码只是爬了电影名,然后也没有将爬到的数据保存到本地,那我就在他的基础上加了几行代码,将数据保存到本地了。

首先爬虫三部曲?
第一,requests爬取网页的HTML信息
第二,解析HTML。解析有很多种方法>_<
第三,保存本地

翻页信息
第一页:https://movie.douban.com/top250?start=0&filter=
第二页:https://movie.douban.com/top250?start=25&filter=
第三页:https://movie.douban.com/top250?start=50&filter=
第十页:https://movie.douban.com/top250?start=225&filter=

所以翻页规律就是 25*i (i+1)表示第几页

在网页源代码中定位需要爬取的信息
在这里插入图片描述

代码如下

加了一点自己的解释>_<

import requests
from bs4 import BeautifulSoup
def get_movies(): #定义一个函数来爬取数据
    headers = {
        'user-agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',
        'Host': 'movie.douban.com'
    }
    movie_list = []     #定义一个空列表,放电影名                                                  #定义序列
    for i in range(0, 10):#遍历页数,0表示第一页
        url = 'https://movie.douban.com/top250?start=' + str(i * 25)     #通过循环,下载第二页,第三页
        r = requests.get(url, headers=headers, timeout=10)  #爬虫第一步,requests发送请求,爬取HTML信息             #timeout=10,响应时长
        print(str(i + 1), "页响应状态码:", r.status_code)                   #显示状态码,返回200,请求成功

        soup = BeautifulSoup(r.text, "lxml")  #爬虫第二步,解析数据
        div_list = soup.find_all('div', class_='hd')                     #如下图显示,电影名字在div标签之后
        for each in div_list:
            movie = each.a.span.text.strip()                              #span后的文本
            movie_list.append(movie)                                      #append(movie),在movie_list中添加movie序列
    return movie_list 
movies = get_movies() 

print(movies)
import pandas as pd
df = pd.DataFrame(movies)
#df.to_csv('doubanTop250Movies_name.csv') 不知道为啥这个文件打开后乱码 
df.to_excel('doubanTop250Movies_name.xlsx')

结果如下

在这里插入图片描述
在这里插入图片描述
总的来说就是 要查看要爬取的信息在网页源代码中是如何显示的,再根据规律写爬取的代码>_<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值