新闻、网页正文抽取
万维易源 官方文档
传入一个新网或网页地址,接口将返回此url地址的正文及图片列表。通常用于获取新网网页的正文
基本说明:
接口地址:http://route.showapi.com/883-1
返回格式:json
请求方式:get/post
请求示例:0
请求参数说明:
名称 类型 必填 说明
url String 必填 要抽取的正文地址
needHtml String 选填 是否要返回html字段
needContent String 选填 是否要返回content字段
needAll_list String 选填 是否要返回all_list字段
返回参数说明:
名称 类型 说明
content String 正文
html String 正文的html格式
img_list String 正文中包括的图片列表
time String 新闻发布时间
title String 网页标题。
all_list String 这是一个数组对象,包括了所有的文章段落以及图片。
ret_code String 0为成功,其他失败
JSON返回示例:
{
	"showapi_res_code": 0,
	"showapi_res_error": "",
	"showapi_res_body": {
		"all_list": [
			"微软在今年1月举行的“Windows 10下一篇章”发布会上,正式发布了巨型商务",
			"【天极网IT新闻频道】",
			"【Yesky新闻频道消息】",
			"  原计划,这款产品将于今年9月份出货。不过,日前微软再次推迟了发货日期到2016年1月1日,而且全系涨价2000美元,也就是55英寸Surface",
			"售价为8999美元,而84英寸型号售价将达21999美元(约合人民币14万)。",
			{
				"height": 256,
				"url": "http://image.tianjimedia.com/uploadImages/2015/357/13/7XFZ8BXOO15P_600.jpg",
				"width": 500
			},
			"  对此微软发言人表示,我们评估了市场机会并考虑到Surface Hub能够为用户提供独特的协作场景,新的价格是正确的,对我们的业务和产品类别向前发展都有好处。",
			"  微软称,Surface Hub除了液晶屏,其他元件的设计全部参与,他们还在Wilsonville建设了面积7万平方英尺(约合6500平方米)的工厂自己生产。",
			{
				"height": 196,
				"url": "http://www.yesky.com//uploadImages/2015/264/46/2OBRY213I2D8.jpg",
				"width": 600
			},
			"IT新闻微信公众平台",
			"* 网友发言均非本站立场,本站不在评论栏推荐任何网店、经销商,谨防上当受骗!"
		],
		"content": "微软在今年1月举行的“Windows 10下一篇章”发布会上,正式发布了巨型商务【天极网IT新闻频道】【Yesky新闻频道消息】  原计划,这款产品将于今年9月份出货。不过,日前微软再次推迟了发货日期到2016年1月1日,而且全系涨价2000美元,也就是55英寸Surface售价为8999美元,而84英寸型号售价将达21999美元(约合人民币14万)。  对此微软发言人表示,我们评估了市场机会并考虑到Surface Hub能够为用户提供独特的协作场景,新的价格是正确的,对我们的业务和产品类别向前发展都有好处。  此前,微软合作伙伴公司的高管Angela Hlavka透露,自从7月1日接受预定以来,这款天价产品市场需求高涨。,支持100点触控。  其中,55寸的型号采用Intel四代i5处理器+核心  此外,微软还为Surface Hub配备了两个Pen和一个微软一体化媒体。55英寸和84英寸版本均带有两个前置1080p  微软称,Surface Hub除了液晶屏,其他元件的设计全部参与,他们还在Wilsonville建设了面积7万平方英尺(约合6500平方米)的工厂自己生产。IT新闻微信公众平台第一时间获取新鲜资讯使用手机扫描左方二维码只为做最好 专访RAZER联合创始人兼CEO Min联通、金立高层谈合作:1+1>2的互动效应新创潮?绘声未来 访深圳洛可可总经理邓玉龙荣耀总裁赵明:让更多用户能快速体验VR技术引领无屏电视技术突破 专访极米科技CEO钟波大物流需要专业 专访日日顺物流总经理数据中国一周年 中科曙光历军有话说社交网络新趋势:无视频不社交?谷歌Android系统有望彻底称霸全球么?五大标准 飞贷重新定义手机APP贷款酷开王志国:大屏时代的智慧生活企业会员与社区发展并重 ODL发力SDN市场苹果真的衰落了么 还是说是在憋大招?苹果手机将开始走下坡路? 担心太早了从EasyOP看中科曙光HPC的共享经济玩法移动手游市场大爆发 \"大IP时代\"将至?中国制造发力 打破洁身器行业多年沉寂琵琶遮面 Surface Hub被推迟到明年3月上市微软发布巨型平板Surface Hub入门视频微软超级平板Surface Hub将推迟上市微软Surface Hub将推迟上市 售价近2万美元每日IT极热 三星将推可折叠机IT极热 ",
		"html": "<p>微软在今年1月举行的“Windows 10下一篇章”发布会上,正式发布了巨型商务</p><p>【天极网IT新闻频道】</p><p>【Yesky新闻频道消息】</p><p>  原计划,这款产品将于今年9月份出货。不过,日前微软再次推迟了发货日期到2016年1月1日,而且全系涨价2000美元,也就是55英寸Surface</p><p>售价为8999美元,而84英寸型号售价将达21999美元(约合人民币14万)。</p><p>  对此微软发言人表示,我们评估了市场机会并考虑到Surface Hub能够为用户提供独特的协作场景,新的价格是正确的,对我们的业务和产品类别向前发展都有好处。</p><p>  此前,微软合作伙伴公司的高管Angela Hlavka透露,自从7月1日接受预定以来,这款天价产品市场需求高涨。</p><p>,支持100点触控。</p><p>  其中,55寸的型号采用Intel四代i5处理器+核心</p><p>  此外,微软还为Surface Hub配备了两个</p><p>Pen和一个微软一体化媒体</p><p>。55英寸和84英寸版本均带有两个前置1080p</p><p>  微软称,Surface Hub除了液晶屏,其他元件的设计全部参与,他们还在Wilsonville建设了面积7万平方英尺(约合6500平方米)的工厂自己生产。</p><p>IT新闻微信公众平台</p><p>第一时间获取新鲜资讯</p><p>使用手机扫描左方二维码</p><p>只为做最好 专访RAZER联合创始人兼CEO Min</p><p>联通、金立高层谈合作:1+1>2的互动效应</p><p>新创潮?绘声未来 访深圳洛可可总经理邓玉龙</p><p>荣耀总裁赵明:让更多用户能快速体验VR技术</p><p>引领无屏电视技术突破 专访极米科技CEO钟波</p><p>大物流需要专业 专访日日顺物流总经理</p><p>数据中国一周年 中科曙光历军有话说</p><p>社交网络新趋势:无视频不社交?</p><p>谷歌Android系统有望彻底称霸全球么?</p><p>五大标准 飞贷重新定义手机APP贷款</p><p>酷开王志国:大屏时代的智慧生活</p><p>企业会员与社区发展并重 ODL发力SDN市场</p><p>苹果真的衰落了么 还是说是在憋大招?</p><p>苹果手机将开始走下坡路? 担心太早了</p><p>从EasyOP看中科曙光HPC的共享经济玩法</p><p>移动手游市场大爆发 \"大IP时代\"将至?</p>",
		"img_list": [{
				"height": 256,
				"url": "http://image.tianjimedia.com/uploadImages/2015/357/13/7XFZ8BXOO15P_600.jpg",
				"width": 500
			},
			{
				"height": 196,
				"url": "http://www.yesky.com//uploadImages/2015/264/46/2OBRY213I2D8.jpg",
				"width": 600
			}
		],
		"ret_code": 0,
		"time": "2016-1-1",
		"title": "SurfaceHub延至2016年1月1日发货且全系涨价"
	}
}
服务级错误码参照
错误码 说明
-1 系统调用错误
-2 可调用次数或金额为0
-3 读取超时
-4 服务端返回数据解析错误
-5 后端服务器DNS解析错误
-6 服务不存在或未上线
-1000 系统维护
-1002 showapi_appid字段必传
-1003 showapi_sign字段必传
-1004 签名sign验证有误
-1005 showapi_timestamp无效
-1006 app无权限调用接口
-1007 没有订购套餐
-1008 服务商关闭对您的调用权限
-1009 调用频率受限
-1010 找不到您的应用
-1011 子授权app_child_id无效
-1012 子授权已过期或失效
-1013 子授权ip受限
完整教学代码示例
public static void main(String path[]) throws Exception {
URL u = new URL("http://route.showapi.com/883-1?showapi_appid%3Dmyappid%26url%3Dhttp%3A%2F%2Fnews.yesky.com%2F112%2F99481112.shtml%26needHtml%3D0%26needContent%3D0%26needAll_list%3D1%26showapi_sign%3Dmysecret");
InputStream in = u.openStream();
ByteArrayOutputStream out = new ByteArrayOutputStream();
try {
byte buf[] = new byte[1024];
int read = 0;
while ((read = in .read(buf)) > 0) {
out.write(buf, 0, read);
}
} finally {
if ( in != null) {
in .close();
}
}
byte b[] = out.toByteArray();
System.out.println(new String(b, "utf-8"));
}
<?php
/**
 * Created by PhpStorm.
 * User: FZS
 * Time: 2019/3/15 17:50
 */
//----------------------------------
// 易源 新闻、网页正文抽取 调用类
//----------------------------------
class freeApi{
    private $apiId = false; //易源appid
    private $apiSecret = false; //易源secret
    private $apiUrl = 'http://route.showapi.com/883-1';
    public function __construct($apiid,$secretkey){
        $this->apiId = $apiid;
        $this->apiSecret = $secretkey;
    }
    /**
     * url拼接
     * @return string
     */
    private function handleParam($paramArr,$showapi_secret){
        $paraStr = "";
        $signStr = "";
        ksort($paramArr);
        foreach ($paramArr as $key => $val) {
            if ($key != '' && $val != '') {
                $signStr .= $key.$val;
                $paraStr .= $key.'='.urlencode($val).'&';
            }
        }
        $signStr .= $showapi_secret;//排好序的参数加上secret,进行md5
        $sign = strtolower(md5($signStr));
        $paraStr .= 'showapi_sign='.$sign;//将md5后的值作为参数,便于服务器的效验
        return '?'.$paraStr;
    }
    /**
     * 将JSON内容转为数据,并返回
     * @param string $content [内容]
     * @return array
     */
    public function returnArray($content){
        return json_decode($content,true);
    }
    /**
     * 获取 新闻、网页正文抽取 结果
     * @return array
     */
    public function getResult(){
        $paramArr = [
            'showapi_appid'=> $this->apiId,
            'url'=> "http://news.yesky.com/112/99481112.shtml",
            'needHtml'=> "0",
            'needContent'=> "0",
            'needAll_list'=> "1"
        ];
        return $this->returnArray($this->freeApiCurl($this->apiUrl.$this->handleParam($paramArr,$this->apiSecret)));
    }
    /**
     * 请求接口返回内容
     * @param  string $url [请求的URL地址]
     * @param  string $params [请求的参数]
     * @param  int $ipost [是否采用POST形式]
     * @return  string
     */
    public function freeApiCurl($url,$params=false,$ispost=0){
        $ch = curl_init();
        curl_setopt( $ch, CURLOPT_HTTP_VERSION , CURL_HTTP_VERSION_1_1 );
        curl_setopt( $ch, CURLOPT_HTTP_VERSION , CURL_HTTP_VERSION_1_1 );
        curl_setopt( $ch, CURLOPT_USERAGENT , 'free-api' );
        curl_setopt( $ch, CURLOPT_CONNECTTIMEOUT , 60 );
        curl_setopt( $ch, CURLOPT_TIMEOUT , 60);
        curl_setopt( $ch, CURLOPT_RETURNTRANSFER , true );
        if( $ispost )
        {
            curl_setopt( $ch , CURLOPT_POST , true );
            curl_setopt( $ch , CURLOPT_POSTFIELDS , $params );
            curl_setopt( $ch , CURLOPT_URL , $url );
        }
        else
        {
            if($params){
                curl_setopt( $ch , CURLOPT_URL , $url.'?'.$params );
            }else{
                curl_setopt( $ch , CURLOPT_URL , $url);
            }
        }
        $response = curl_exec( $ch );
        if ($response === FALSE) {
            return false;
        }
        curl_close( $ch );
        return $response;
    }
}
//推荐使用npm安装使用sdk: npm install --save showapi-sdk
'use strict';

var showapiSdk = require('showapi-sdk');

//设置你测试用的appId和secret,img
var appId='';
var secret='';
//开启debug
//showapiSdk.debug(true);
if(!(appId&&secret)){
  console.error('请先设置appId等测试参数,详见样例代码内注释!')
  return;
}
//全局默认设置
showapiSdk.setting({
  url:"http://route.showapi.com/883-1",//你要调用的API对应接入点的地址,注意需要先订购了相关套餐才能调
  appId:appId,//你的应用id
  secret:secret,//你的密钥
  timeout:5000,//http超时设置
  options:{//默认请求参数,极少用到
    testParam:'test'
  }
})

var request=showapiSdk.request();
request.appendText('url','http://news.yesky.com/112/99481112.shtml');
request.appendText('needHtml','0');
request.appendText('needContent','0');
request.appendText('needAll_list','1');
request.post(function(data){
  console.info(data)
})
package main

import (
"showSdk/normalRequest"
"fmt"
)
res := normalRequest.ShowapiRequest("http://route.showapi.com/883-1",my_appId,"my_appSecret")
res.AddTextPara("url","http://news.yesky.com/112/99481112.shtml")
res.AddTextPara("needHtml","0")
res.AddTextPara("needContent","0")
res.AddTextPara("needAll_list","1")
//res.AddFilePara("img", "C:\\Users\\showa\\Desktop\\使用过的\\4.png")//文件上传时设置
fmt.Println(res.Post())
# python3.6.5
# 需要引入requests包 :运行终端->进入python/Scripts ->输入:pip install requests
from ShowapiRequest import ShowapiRequest

r = ShowapiRequest("http://route.showapi.com/883-1","my_appId","my_appSecret" )
r.addBodyPara("url", "http://news.yesky.com/112/99481112.shtml")
r.addBodyPara("needHtml", "0")
r.addBodyPara("needContent", "0")
r.addBodyPara("needAll_list", "1")
# r.addFilePara("img", r"C:\Users\showa\Desktop\使用过的\4.png") #文件上传时设置
res = r.post()
print(res.text) # 返回信息