Python爬虫(4)获得所有Top250部电影的信息并存入数据库

2023-05-16

上次我们完成了单页电影的获取并保存到了Excel文件中,不知道小伙伴们都完成了没?有没有把Top250部电影都保存下来的?在编写这些代码过程中遇到什么问题了没?如果遇到但是没有解决,或是解决了但不知道原因的请在公众号中发消息给小编,一起讨论,共同进步。

OK,今天继续把所有的电影都获取并保存下来,不过这次保存的位置我们做一些改动,通常情况下,这样有规则的信息我们都保存到数据库中,毕竟Excel文件还是仅限于个人数据存放,而真正的数据库才是相对通用的数据存储办法,好处太多,比如,存储和查询方便,数据的完整性和有效性都更有保障等等。

 

  1. 公布所有电影信息的获取代码

我们已经获取了一页的所有需要的信息,那么再来9页的信息几乎一点困难都没有,不就是通过一个For循环就能搞定吗?

不过,回顾一下我们之前写的代码,虽然功能都实现了,但是整个代码写下来有点流水账的感觉,阅读性和维护性相对较差,如果能以结构化的方式书写,在今后问题排查或是功能扩展都会带来不少便利。所以在这里我们把一些功能单独抽出来写成函数。如下截图:

这样我们把抓取网页信息以及保存信息到数据库或文件分成了几个块,这样我们这个Python文件的程序阅读和维护起来就会非常方便。

首先看AskURL这个函数,通过传参url就可以获取url所指定网页页面信息,而这个信息就是需要我们接下来通过GetData对这些信息进行解析拆分存储到一个列表返回,然后让SaveDataToDB函数来处理存入到数据库中。另外所有这个流程都在main函数中体现,这样只需要通过main函数就可以一目了然知道整个程序的结构以及实现的方法都有哪些。

 

本次代码你可以扫描下方二维码关注微信公众号阅读历史文章获取

 

2. SQLite数据库

 该数据库是Python3之后就默认支持的数据库,它为我们学习和做一些测试提供了很多便利,不太需要过多的关注数据库方面的知识,你只需要知道怎么使用就可以了。

使用 conn = sqlite3.connect(“test.db”) 就可以连接当前目录下存在的test.db数据库文件,如果不存在则会自动创建该文件。

通过获取游标然后执行SQL语句来创建数据表。

 

同样在将获取的数据保存到数据库的时候,通过for循环语句,采用构造INSERT INTO 语句向数据表中添加新的记录。

 

至此,数据库的创建以及记录的保存就已经完成,因为数据库在这里不是我们的重点,这里使用数据库是为了后续我们的引用,后续会讲到通过网页是如何调用我们数据库的记录信息然后通过表、动态图根据用户的选择而实时显示在网页上的。

 

该段代码不是很完美,我只是考虑到数据库以及记录都是一次性创建,后续我们不再动态根据网站而实时更新此数据库,所以并没有考虑到数据表增加,记录增加等,有兴趣可以自行尝试去完善。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python爬虫(4)获得所有Top250部电影的信息并存入数据库 的相关文章

  • 为一列中的多行生成不同的随机数

    我得到了一列带有整数值 n 行 的列 我想生成满足特定条件的值的正态分布范围内的随机数 我尝试使用下面的代码 但它们太慢了 df members bd df members bd apply lambda x np random norma
  • 确定非空列表条目是否“连续”的 Pythonic 方法

    我正在寻找一种方法来轻松确定列表中所有非 None 项目是否出现在单个连续切片中 我将使用整数作为非 None 项目的示例 例如 列表 None None 1 2 3 None None 满足我对连续整数条目的要求 相比之下 1 2 Non
  • 我如何在 ruby​​ 中执行范围正则表达式,例如 awk /start/,/stop/

    我想做一个 AWK 风格的范围正则表达式 如下所示 awk hoststatus file 在 AWK 中 这将打印文件中两个模式之间的所有行 hoststatus host name myhost modified attributes
  • 导入错误:无法导入名称 md5

    真的不知道这里发生了什么 我需要在弹性beanstalk上部署我的flask应用程序 但不知何故改变了路径并且无法再运行python application py dotnet info NET Core SDK reflecting an
  • 非常大的数据集的余弦相似度

    我在计算大量 100 维向量之间的余弦相似度时遇到问题 当我使用from sklearn metrics pairwise import cosine similarity I get MemoryError在我的 16 GB 机器上 每个
  • 如何提取图像中的表格

    我想从图像中提取表格 这个 python 模块https pypi org project ExtractTable https pypi org project ExtractTable 与他们的网站https www extractta
  • 用于列出用户和组的 Python 脚本

    我正在尝试编写一个脚本 在自己的行上输出每个用户及其组 如下所示 user1 group1 user2 group1 user3 group2 user10 group6 etc 我正在为此用 python 编写一个脚本 但想知道如何做到这
  • 在Python中解析制表符分隔的文件

    我正在尝试在 Python 中解析一个制表符分隔的文件 其中与行开头分开的 k 个制表符的数字应该放入第 k 个数组中 除了逐行读取并执行简单解决方案将执行的所有明显处理之外 是否有内置函数可以执行此操作 或者有更好的方法 您可以使用the
  • python 命令行应用程序的最佳布局是什么?

    什么是正确的方法 或者我会满足于good方式 布置一个中等复杂度的命令行 python 应用程序 我使用 Paster 创建了一个 Python 项目框架 它为我提供了一些文件 myproj init py MyProj egg info
  • Python 字典组并对多个值求和[重复]

    这个问题在这里已经有答案了 我在字典格式列表中有一组数据 如下所示 data name A tea 5 coffee 6 name A tea 2 coffee 3 name B tea 7 coffee 1 name B tea 9 co
  • 如何重定向到外部404页面Python Flask

    我正在尝试将 404 重定向到外部 URL 如下所示 app route 404 def http error handler error return flask redirect http www exemple com 404 404
  • 优化Python:大数组、内存问题

    我在运行 python numypy 代码时遇到速度问题 我不知道如何让它更快 也许其他人 假设有一个表面有两个三角剖分 一个是细三角剖分 fine 有 M 个点 一个是粗剖分 有 N 个点 此外 还有每个点的粗网格数据 N 个浮点数 我正
  • 如何在Python中打印带下划线的内容?

    print hello 输出应该是单词 hello 但有下划线 您可以通过使用转义字符来做到这一点 print 033 4mhello 033 0m
  • 如何在 Pandas 中叠加“一天”内的数据进行绘图

    我有一个数据框 里面有一些 更有意义 数据格式如下 In 67 df Out 67 latency timestamp 2016 09 15 00 00 00 000000 0 042731 2016 09 15 00 16 24 3769
  • admin.py 用于项目,而不是应用程序

    如何指定项目级别admin py 我前段时间问过这个问题 但由于该问题缺乏活动 我刚刚获得了风滚草奖 gt Project 设置 py admin py 这就是我想要开始工作的 App admin py 我知道该怎么做 例如 admin a
  • 使用 python mechanize 库登录 https 站点

    我有以下代码 import requests import sys import urllib2 import re import mechanize import cookielib import json import imp prin
  • Python:“取消导入”、“重新导入”、“重置导入”?

    我调试 在 PyCharm 中 一个脚本 我在断点处停止 然后转到调试控制台窗口 然后从那里调用导入行 如下所示 import my util1 from my utils 然后我调用 my util1 到目前为止 一切都还好 然后我更改
  • python - lxml:强制执行属性的特定顺序

    我有一个 XML 编写脚本 可以为特定的第 3 方工具输出 XML 我使用原始 XML 作为模板来确保构建所有正确的元素 但最终的 XML 看起来与原始的不同 我以相同的顺序编写属性 但 lxml 按自己的顺序编写它们 我不确定 但我怀疑第
  • Keras 导入错误 Nadam

    我在尝试导入 Keras 模块 Nadam 时遇到导入错误 gt gt gt from keras optimizers import Nadam Traceback most recent call last File
  • 与 IPython 内核分离而不终止它

    有人可以告诉我如何在不终止 IPython 内核的情况下分离它吗 我在文档中看到quit 有一个参数keep kernel 但不幸的是quit keep kernel True 行不通的 如果您通过 IPython 控制台客户端连接到内核并

随机推荐