脑课堂编程教育

python只需7行代码就能爬取豆瓣电影的数据

开发无忧 2年前
44 0 0
脑课堂编程培训

  搜索引擎和(大多数)新闻类APP都不自己生产内容(虽然有些平台孵化了自己的内容,但也只占整个平台内容的很少的一部分,更重要的是,成本非常高)。

  那么,他们的大量的内容从哪里来?

  “我们不生产内容,只是内容的搬运工”,将互联网上的内容“搬运”到自己的服务器上,这就是爬虫。

  首先,我们需要了解一下互联网的结构:

  互联网上的内容数以亿计,虽然很复杂,但说白了就是一张大网,网上的每个节点就是一个网页,连接网页的超链接(Hyperlinks)相当于线,线把所有的节点连接在一起,形成了一个复杂的网。

  通过点击超链接的文字或者图片,就可以跳转到对应的网页。爬虫可以自动访问到每一个网页,并把网页的内容保存下来。

  世界上第一个网络爬虫由麻省理工学院的学生马修·格雷(Matthew Gray)在1993年写成,之后的爬虫尽管越来越复杂。

  比如:可以实现更快的访问速度、访问更多的网页、更好的将网站内容解析出来。但爬虫的基本原理是一样的,都主要包括三个部分:访问网页链接,下载网页内容,解析网页内容。

  爬虫的工作过程与我们查找网页的过程是一样的。

  比如,我们想要查一下豆瓣上最新的电影:首先,在浏览器地址栏输入网址链接 https://movie.douban.com/ ;之后,浏览器会跳转到豆瓣电影;最后,我们就可以找到当前热映的电影。

file

  同样的,一个最简单的爬虫三步就可以爬取一个网页:

  访问这个网页;

  把网页内容下载下来;

  对下载的内容进行解析。

  最简单的爬虫三步就可以爬取一个网页,那么要写多少行代码呢?

  我们写一个爬虫,爬取豆瓣的“一周口碑榜”,只要7行代码!

  代码如下:

file

  在Python环境中运行这几行代码,就可以获取“一周口碑榜”了,结果如下:

  [‘迦百农’, ‘绿皮书’, ‘驯龙高手3’, ‘速成家庭’, ‘阿丽塔:战斗天使’, ‘肤色’, ‘死亡天使’, ‘黎明墙’, ‘小小巨人’, ‘出·路’]

  其中最关键的是解析网页内容,主要是(‘//td[@class=”title”]//a/text()’)这行代码,大多数人可能对比较困惑。

  这涉及到HTML网页的结构:

  可以把网页理解成一个文件夹,打开一个文件夹,会发现子文件夹,子文件夹或许还有文件夹;通过打开一个个文件夹,最终找到需要的数据。

  //td :这个相当于大目录;

  [@class=”title”]:这个相当于小目录;

  //a :这个相当于最小的目录;

  /text():这个是提取其中的文字内容。

  至于是怎么写出来这行代码的,可以通过在网页空白处点击右键,查看源代码,就可以找到对应的td、class=”title”、a等标识符。

  大多数程序员写爬虫选择python的理由很简单:

  首先,python有很多的库,可以直接调用,比如:上面的代码就引入了requests、lxml库,分别实现访问网页、对网页结构解析。有开源的库,就直接调用,避免重复造轮子。

  其次,python写起来很方便,配置也简单,短短几行的代码,就可以直接运行了,如果使用C或者Java,可能配置环境就要老半天。

收藏

本文标题:python只需7行代码就能爬取豆瓣电影的数据

本文链接:https://naoketang.com/p/djg500jn5nr9

评论区

推荐课程