文章采集api(本节比较简单,有开发经验可以跳过。。(组图))
优采云 发布时间: 2022-04-12 19:24文章采集api(本节比较简单,有开发经验可以跳过。。(组图))
这部分比较简单,有开发经验的可以跳过。
使用 APIAPI 概述
百度百科对API的解释:API(Application Programming Interface,应用程序编程接口)是一些预定义的函数,目的是为应用程序和开发者提供基于某种软件或硬件访问一组例程的能力,而不需要访问源代码,或了解内部工作的细节。
表示这是接口,不管语言限制都可以调用。
API 通用规则
API 使用一套非常标准的规则来生成数据,并且生成的数据以非常标准的方式组织。
方法
有许多方法可以使用 HTTP 从 Web 服务器请求信息。这里有四种常用的方法: GET:从服务器获取数据的方法;POST:向服务器发送数据。比如提交表单到服务器处理的逻辑;PUT:主要用于更新一个对象或信息,一般很少用到;DELETE:从服务器中删除一个对象。
核实
API 不能随时或由任何人调用。为了保证服务器上的安全或减少资源等,我们会限制请求的方法或数量。通常,接口是经过验证的。一般的验证方法是令牌。该令牌一般在用户登录或注册时从服务器生成,然后交给用户。令牌可以是可变的或不可变的。除了在 URL 链接中传递 token 外,它还通过请求头中的 cookie 将用户信息传递给服务器。简单的例子:
token = ""
webRequest = urllib.request.Request("http://myapi.com", headers={"token":token})
html = urlopen(webRequest)
服务器响应
服务器响应的数据格式一般为 JSON 或 XML。目前 JSON 有很多原因,其中之一是 JSON 文件比完整的 XML 格式小;再加上网络技术的变化,后端语言越来越多,基本上所有接口都能实现。
API 调用的语法也存在差异,但也有既定的准则。例如,使用GET请求获取数据时,使用URL路径描述要获取的数据范围,查询参数可以作为过滤器或附加请求;还有很多API以文件路径(path)的形式指定API版本和数据格式。和其他财产;有些API以请求参数的形式指定数据格式和API版本:
市面上很多公司或者网站都有自己的公共接口,比如推特、谷歌等。
解析 JSON 数据
例如,我们使用 GET 来请求和查看返回的数据。返回为:
1
{"ip":"50.78.253.58","country_code":"US","country_name":"United States","region_code":"MA ","region_name":"Massachusetts","city":"Boston","zip_code":"02116","time_zone":"America/New_York","latitude":42.3496,"longitude ":-71.0746,"metro_code":506}
现在我们使用 Python 来解析。JSON 是 Python 的标准库,不需要额外安装。代码显示如下:
import json
from urllib.request import urlopen
def getCountry(ipAddress):
res = urlopen("http://freegeoip.net/json/"+ipAddress).read().decode('utf-8')
resJson = json.loads(res)
return resJson.get('country_code')
print(getCountry("22.18.53.22"))
Python 使用更灵活的方式将 JSON 转换为字典,将 JSON 数组转换为列表,以及将 JSON 字符串转换为 Python 字符串。