主页 > 网站优化 > 网路爬虫:不生产内容,只是内容的搬运工

网路爬虫:不生产内容,只是内容的搬运工

网路爬虫:不生产内容,只是内容的搬运工

 

一、初识爬虫

工作的时候,想要查找“产品设计”,可以直接在搜索引擎上输入内容,就可以直接找到数以百万计的资料。

上下班路上,刷新闻类APP的时候,只要愿意,就会有源源不断的新的信息,足够刷一路的时间。

网路爬虫:不生产内容,只是内容的搬运工

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

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

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

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

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

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

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

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

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

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

同样的,一个最简单的爬虫三步就可以爬取一个网页——首先,访问这个网页,之后,把网页内容下载下来,最后,对下载的内容进行解析。

 

二、7行代码爬取豆瓣电影

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

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

网路爬虫:不生产内容,只是内容的搬运工

这里我们使用Python语言,至于为什么选择Python语言,会在后面交代清楚,如果不懂Python也没有关系,了解爬虫是如何工作的就可以了。

代码如下:

import requests from lxml

import html url=’https://movie.douban.com/’ # 1、需要爬数据的网址

page=requests.Session.get(url) # 2、访问网页

tree=html.fromstring(page.text) # 3、解析网页的过程

result=tree.xpath(‘//td[@class=”title”]//a/text’) #3、解析网页的过程

print(result) # 打印出结果

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

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

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

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

  1. //td :这个相当于大目录;
  2. [@class=”title”]:这个相当于小目录;
  3. //a :这个相当于最小的目录;
  4. /text:这个是提取其中的文字内容。

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

说点什么吧
  • 全部评论(0
    还没有评论,快来抢沙发吧!