Python即时网络爬虫:API说明
admin
2023-07-31 01:46:30
0

API说明——下载gsExtractor内容提取器

1,接口名称

下载内容提取器

2,接口说明

如果您想编写一个网络爬虫程序,您会发现大部分时间耗费在调测网页内容提取规则上,不讲正则表达式的语法如何怪异,即便使用XPath,您也得逐个编写和调试。

如果要从一个网页上提取很多字段,逐个调试XPath将是十分耗时的。通过这个接口,你可以直接获得一个调测好的提取器脚本程序,是标准的XSLT程序,您只需针对目标网页的DOM运行它,就能获得XML格式的结果,所有字段一次性获得。

这个XSLT提取器可以是您用MS谋数台生成的,也可以是其他人共享给您的,只要您有读权限,皆可下载使用。

用于数据分析和数据挖掘的网络爬虫程序中,内容提取器是影响通用性的关键障碍,如果这个提取器是从API获得的,您的网络爬虫程序就能写成通用的框架。请参看GooSeeker的开源Python网络爬虫项目。

3,接口规范

3.1,接口地址(URL)

http://www.gooseeker.com/api/getextractor

3.2,请求类型(contentType)
不限

3.3,请求方法
HTTP GET

3.4,请求参数

  • key 必选:Yes;类型:String;说明:申请API时分配的AppKey

  • theme 必选:Yes;类型:String;说明:提取器名,就是用MS谋数台定义的规则名

  • middle 必选:No;类型:String;说明:规则编号,如果相同规则名下定义了多个规则,需填写

  • bname 必选:No;类型:String;说明:整理箱名,如果规则含有多个整理箱,需填写

注释:请参看GooSeeker网络爬虫术语解释:集搜客GooSeeker专有名词解释

3.5,返回类型(contentType)
text/xml; charset=UTF-8

3.6,返回参数
HTTP消息头中的参数,如下:

  • more-extractor 类型:String;说明:相同规则名下有多少个提取器。通常只在可选参数没有填写的时候需要关注这个参数,用以提示客户端有多个规则和整理箱,客户端自己决定是否要在发送请求时携带明确的参数

3.7,返回错误信息

  • 消息层错误以HTTP 400返回,比如,URL中的参数不符合本规范

  • 应用层错误以HTTP 200 OK返回,具体错误码用XML文件放在消息体中,XML结构如下:

    
        具体的错误码
    
    
  • 具体的code值如下:

    keyError:权限验证失败
    paramError:URL中传来的参数有误,比如,参数名称或值不正确
    empty:非错误状态,而是请求的提取器是不存在的,比如,某个抓取规则并没有创建整理箱,则返回empty
    

4,用法范例(python语言)

提取器名获取参考 1分钟快速生成用于网页内容提取的xslt

示例代码:

# -*- coding: utf-8 -*-
from urllib import request

url = \'http://www.gooseeker.com/api/getextractor?key=您的key&theme=您的提取器名\'

resp = request.urlopen(url)
content = resp.read()
if(content):
    print(content)

接下来我会对此API进行测试,将案例发布出来。

5,相关文档

1, Python即时网络爬虫项目: 内容提取器的定义

6,集搜客GooSeeker开源代码下载源

1, GooSeeker开源Python网络爬虫GitHub源

7,文档修改历史

1,2016-06-22:V1.0

相关内容

热门资讯

Mobi、epub格式电子书如... 在wps里全局设置里有一个文件关联,打开,勾选电子书文件选项就可以了。
定时清理删除C:\Progra... C:\Program Files (x86)下面很多scoped_dir开头的文件夹 写个批处理 定...
scoped_dir32_70... 一台虚拟机C盘总是莫名奇妙的空间用完,导致很多软件没法再运行。经过仔细检查发现是C:\Program...
500 行 Python 代码... 语法分析器描述了一个句子的语法结构,用来帮助其他的应用进行推理。自然语言引入了很多意外的歧义,以我们...
小程序支付时提示:appid和... [Q]小程序支付时提示:appid和mch_id不匹配 [A]小程序和微信支付没有进行关联,访问“小...
pycparser 是一个用... `pycparser` 是一个用 Python 编写的 C 语言解析器。它可以用来解析 C 代码并构...
微信小程序使用slider实现... 众所周知哈,微信小程序里面的音频播放是没有进度条的,但最近有个项目呢,客户要求音频要有进度条控制,所...
65536是2的几次方 计算2... 65536是2的16次方:65536=2⁶ 65536是256的2次方:65536=256 6553...
Apache Doris 2.... 亲爱的社区小伙伴们,我们很高兴地向大家宣布,Apache Doris 2.0.0 版本已于...
项目管理和工程管理的区别 项目管理 项目管理,顾名思义就是专注于开发和完成项目的管理,以实现目标并满足成功标准和项目要求。 工...