[Python 爬虫这样学,一定是大拇指拉!] DAY16 - 从爬虫看 API / CGI

虽然爬虫只需要使用到 URL 送 Request 就好,但我们还是需要对 API / CGI 有一些简单的了解。

因为一个网站是基於 API 还是 CGI 设计的,他们 HTTP Request 跟 Response 的方式可能也会不一样。

有人会问那使用 API 或 CGI 对网站的 Loading 有什麽不同的影响吗?
有是有,但我们是要爬虫又不是架网站,不甘我们的事/images/emoticon/emoticon01.gif,我们来了解什麽是介面就好。

API

  • 引用自维基百科

    应用程序介面(英语:Application Programming Interface),缩写为API,是一种计算介面,它定义多个软件中介之间的互动,以及可以进行的呼叫(call)或请求(request)的种类,如何进行呼叫或发出请求,应使用的资料格式,应遵循的惯例等。

    介面!又是介面!所以什麽是介面?写这样漏漏长,有看没有懂欸。

  • 介面
    假设有一个摇杆,摇杆上的每个按钮,各自有各自的功能对吧,那就是摇杆的介面,我们只需要怎麽用不需要知道里面是怎麽运作的。

  • 回到网页上,也就是说网页上那些查询、新增等等功能,那些就是界面(URL),而我们只需要知道喂给他们什麽参数,不需要知道他们内部逻辑,就能得到预期的结果。

  • 所以当我们要爬虫时,就得先调查这些 URL 可以吃什麽参数、怎麽使用、有什麽限制,再根据我们想要的结果丢相对应的参数给它。

  • Request 跟 Response,通常都是用 Json 来包装资料,资料格式依照设计也会有所不同

CGI

  • 引用自维基百科

    通用闸道器介面 (英语:Common Gateway Interface,CGI) 是为提供网路服务而执行控制台应用 (或称命令列介面)的程序,提供於服务器上实现动态网页的通用协定。通常情况下,一次请求对应一个CGI 指令码的执行,生成一个 HTML。

    一样也是介面

  • 有些网页会使用 CGI 技术来建构他们的网站,通常 Response 会是 HTML。但不是一定,也有其他格式的 Response。

  • Request 的话,通常都是用 Form 来包装资料,这点要注意一下,不然是拿不到想要的 Response 的喔!这边也一样,资料格式依照设计也会有所不同

总之,不管网页提供什麽介面,写爬虫程序前要好好调查一下那些介面要怎麽使用喔!

本篇章参考资料

[1] Wiki - 应用程序介面
[2] Wiki - 通用闸道器介面


<<:  ASP.NET MVC 从入门到放弃(Day26)-PagedList分页套件介绍

>>:  虹语岚访仲夏夜-17(打杂的Allen篇)

08. Laravel Sail x Xdebug x Coverage

要产出覆盖率报告需要安装 Xdebug。因为我们使用 docker 环境,所以要修改 Dockerf...

[12] 增加 input 输入功能

接着 input 输入的各种功能才可以制作介面互动 所以这边我们使用套件input npm i in...

[Vue2] 从初学到放弃 Day3-Vue架构

Vue 主要架构 此图片来源 Vue官方网站 建立compoent // Define a new ...

[iT铁人赛Day19]JAVA的类别

今天是有关JAVA最後一天的分享了,後天要开始分享CPE的历届试题 然後明天我打算写一篇JAVA的习...

【Day 11】Google Apps Script - API 篇 - 转换流程架构与相关服务

介绍 Docs 转 Api Blueprint 的整体流程架构与相关服务。 今日要点: 》API篇...