爬虫入门——爬取豆瓣top250电影数据并存入excel

爬虫入门——爬取豆瓣top250电影数据并存入excel

最近学习了pyrhon爬虫的相关知识,打算借着写博客梳理一遍,下面先上一个最近做的程序——爬取豆瓣电影中序号、电影名、评分、推荐语、链接的信息并存入excel。也算是一个简单而较完整的爬虫流程了。先看一下流程图:在这里插入图片描述

  1. 准备工作:首先准备好程序需要的库。爬虫获取数据和解析数据需要requests,bs4;创建exccel需要openpyxl
import requests, bs4
import openpyxl

接下来创建excel表格:

wb=openpyxl.Workbook()  
#创建工作簿
sheet=wb.active 
#获取工作簿的活动表
sheet.title='豆瓣top250电影' 
#工作表重命名

sheet['A1'] ='序号'     #加表头,给A1单元格赋值
sheet['B1'] ='电影名'   
sheet['C1'] ='评分'     
sheet['D1'] ='推荐语'  
sheet['E1'] = '链接'

  1. 找到数据地址
    在浏览器中搜索豆瓣电影top250,可以发现如下地址:
    在这里插入图片描述
    同时我们发现1-10页的网址规律是源于start=0-225,那么我们的url地址就很好写了,直接一个for循环可以翻遍所有的页码
  2. 获取数据及解析数据
    经过一番搜寻,可以确定我们需要的数据均在li标签中:
    在这里插入图片描述
    在其中用find方法找到我们需要的数据即可。
headers={'user-agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36'}
for x in range(10):
    url = 'https://movie.douban.com/top250?start=' + str(x*25) + '&filter='
    res = requests.get(url, headers=headers)
    bs = bs4.BeautifulSoup(res.text, 'html.parser')
    bs = bs.find('ol', class_="grid_view")
    for titles in bs.find_all('li'):
        num = titles.find('em',class_="").text
        title = titles.find('span', class_="title").text
        comment = titles.find('span',class_="rating_num").text
        url_movie = titles.find('a')['href']

        if titles.find('span',class_="inq") != None:
            tes = titles.find('span',class_="inq").text
            sheet.append([num,title,comment,tes,url_movie]) 
            print(num + '\n' + title + '\n' + comment + '\n' + '推荐语:' + tes +'\n' + url_movie)
        else:
            tes = '\n'
            sheet.append([num,title,comment,tes,url_movie])
            print(num + '\n' + title + '\n' + comment + '\n' + '推荐语:' + tes +'\n' + url_movie)

注意有个别电影评论是空的,因此我们需要加一个if判断,防止报错。
4. 存储数据
最后将数据存储在excel中

wb.save('movie.xlsx')

最终实现的效果如下:
在这里插入图片描述
后面我会陆续从爬虫基础知识整理,也算是对知识体系的梳理和完善吧~learning is always on the way

  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值