使用BeautifulSoup爬取豆瓣电影排行榜

本文详细介绍了如何利用BeautifulSoup爬取豆瓣电影排行榜的数据,包括电影名、评分、导演、编剧、演员、日期、评论数、类型和详情页链接等信息。首先,获取请求头中的User-Agent和Cookie,然后爬取首页电影的详情页链接。接着,遍历详情页,提取各项信息并存储到字典中。该教程适合已了解基础爬虫知识的读者进一步学习。
摘要由CSDN通过智能技术生成

前言

此文只是介绍如何使用Beautiful来爬取豆瓣电影排行榜,BeautifukSoup的下载与安装即使用方法可以直接看我以前的文章BeautifulSoup安装以及使用方法
下面的代码直接使用了BeautifuilSoup的各种方法,如果看不懂,请点击上面的链接。

1.信息分析

需要获取的信息有:电影名、评分、导演、编剧、演员、日期、评论数、类型、详情页链接等。
需要爬取的网站地址:豆瓣电影排行榜
页面截图如下
豆瓣电影排行榜
从上面的图片可以看出,只是在首页并不能获得所有需要的信息,并且信息并不是完整的还有遗漏。
所以获得信息时需要进入每个电影所在的也就是详情页页面。如下图
电影详情页页面

2.解析方法

话不多说,我们开始吧,不论是使用BeautifulSoup还是lxml方法都需要添加请求头,header中不仅添加了必要的User-Agent,还添加了一个Cookie,Cookie中记录的是用户的账号与密码信息,添加了Cookie在爬虫的过程中爬虫就是登录状态以免在爬取过程中进入登录跳转。

headers = {
    'User-Agent': '',
    'Cookie': ''
    }

获取Cookie的方法也很简单,登录豆瓣后打开网站的检查功能,在Network中就可获得,方法类似于获得User-Agent,如下图。
获取Cookie方法截图有了headers以后就可以开始爬取网站了,代码如下。

url = 'https://movie.douban.com/chart'
html = requests.get(url,headers=headers).text
soup = BeautifulSoup(html,'lxml')
soup = soup.find_all('a',class_='nbg')
base_urllist = []
for s in soup:
    base_urllist.append(s['href'])

以上的代码作用是将首页中所有的电影的详情页链接即url存入列表base_urllist中。

def 存入列表(list):
    new_list = []
    for i in list:
        new_list.append(i.getText())
    return new_list
for url in base_urllist:
    html = requests.get(url,headers=headers).text
    soup = BeautifulSoup(html,'lxml')
    电影名 = soup.find('span',property="v:itemreviewed").getText()
    导演 = soup.find('a',rel="v:directedBy").getText()
    编剧 = 存入列表(soup.find('span',class_="attrs").find_all('a'))
    主演 = 存入列表(soup.find_all('a',rel="v:starring"))
    类型 = 存入列表(soup.find_all('span',property="v:genre"))
    评分 = soup.find('strong').getText()
    评论数 = soup.find('span',property="v:votes").getText()
    item = {
        '电影名': 电影名,
        '导演': 导演,
        '编剧': 编剧,
        '主演': 主演,
        '类型': 类型,
        '评分': 评分,
        '评论数': 评论数,
        '详情页链接': url,
    }
    print(item)

通过以上代码就可以获取到所需的信息了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值