• 七夕看什么电影好?爬取电影评分并存入csv文件


    需求分析

    众所周知,今天已经是七夕节了。能过上节日的想必已经在出去玩以及在出去玩的路上了。下午的时候呢,我也收到了一则攻略“七夕节情侣看恐怖电影如何拉近两人之间的距离”,可惜啊,虽然攻略不错,不过看起来我是用不上了

    出去玩相比也少不了看电影的环节吧?那么,看什么电影比较好呢?想必很多情侣,平日里可能并不关注电影的消息,等到了要找一个电影看的时候,就不知道应该看什么会比较好了。可能,听说最近那个叫做《独行月球》的比较火,已经突破了好多好多亿的票房了,应该去看这个电影吗?

    如果问我的话,我其实也不知道。但是呢,如果要知道看什么电影比较好,一个好的方法就是,查看电影的评分,这样不就一目了然了吗?虽然评分高的电影不代表就一定好看,但是至少,说明大多数人都喜欢看对不对。说干就干,今天我们就爬取一下电影的评分

     实现分析

    爬虫程序都是这样,如果有反爬的话,就会比较难。没有反爬的话就会比较简单。提取数据方面,如果结构复杂,所需的内容杂乱,就会难以提取,如果是结构化的数据,比如说是ajax请求,直接能够拿到json数据的话,就会非常容易

    恰好,今天电影评分既没有反爬,也是json格式的数据,所以一下子就可以轻松提取到了,非常的容易啊。当然,这也不是我们的功劳,主要还是对方网站比较大方

    至于csv的读写,也是非常容易的,有很多种方式都可以实现。比如说,自己通过文件读写,按照csv的格式来读写文件。比如说通过能够操作csv的第三方库进行csv的读写。当然啦,还有一种比较简单的方式就是直接使用python中内置的csv模块。虽然功能比不上第三方库的功能强大,但是也是不错的选择

    当然,也许还有的小伙伴可能不了解csv格式。其实,csv就和excel是类似的,也是能够做成excel的这种格式的,但是相对比较简单,如果你不知道这个话,可以另外去了解一下

    1. import csv # 导入内置的csv模块
    2. # 通过上下文管理器,正常的打开一个文件
    3. with open("douban.csv", "w", newline="") as csvfile:
    4. # 通过csv.writer(),创建一个writer用于后续写入csv文件
    5. w = csv.writer(csvfile, delimiter=",")
    6. # 通过writerow()的方法,写入csv的行
    7. w.writerow(["标题", "评分", "地址", "图片"])
    8. for row in r.json()["subjects"]:
    9. w.writerow([row["title"], row["rate"], row["url"], row["cover"]])

    另外,可能有的小伙伴也会很困惑。如果要读取解析json文件的话,不是应该import json模块吗?为什么在下边的代码中完全没有使用到这一点呢?

    事实上,在requests中,已经包含了json模块,而且有更简单的使用方式,因此直接通过requests使用json就可以了。不需要再额外的引入json的内置模块了

    完整代码实现

    1. import requests
    2. import csv
    3. from base64 import b64decode
    4. headers = {"user-agent": "Mozilla/5.0"}
    5. url = b64decode("aHR0cHM6Ly9tb3ZpZS5kb3ViYW4uY29tL2ovc2VhcmNoX3N1YmplY3RzP3R5cGU9bW92aWUmdGFnPeeDremXqCZzb3J0PXJlY29tbWVuZCZwYWdlX2xpbWl0PTIwJnBhZ2Vfc3RhcnQ9MA==").decode()
    6. r = requests.get(url, headers=headers)
    7. with open("douban.csv", "w", newline="") as csvfile:
    8. w = csv.writer(csvfile, delimiter=",")
    9. w.writerow(["标题", "评分", "地址", "图片"])
    10. for row in r.json()["subjects"]:
    11. w.writerow([row["title"], row["rate"], row["url"], row["cover"]])

    程序运行结束以后,可以看到已经成功保存为了csv文件,效果如下


    所以说,最后祝大家七夕节节日快乐,如果你能过节的话,可以根据评分赶紧去看电影啦。如果你没节可以过的话。嗯,好吧,你也可以自己去看看电影,要不,你不出门的话,别人不就都知道你没节可过了吗!

  • 相关阅读:
    Python爬虫入门基础学习(二)
    Spring Cloud Alibaba Sentinel 使用
    了解Docker 依赖的linux内核技术
    【愚公系列】2022年08月 微信小程序-左划删除效果实现
    猪齿鱼实践之持续交付中的分支管理与版本控制
    数据库的主键和外键
    分布式.RPC-WebService CXF框架
    idea中mapper直接跳转到xml的插件
    回顾vmware 补充细节
    CICD 持续集成与持续交付——git
  • 原文地址:https://blog.csdn.net/sagegrass/article/details/126164020