EX07——API调用练习

收集网络资源的时我们很多时候会使用爬虫技术,随着技术的发展,恶意的爬虫模拟人的行为和浏览器的行为进行信息爬取,有时往往给被爬网站带来诸多麻烦,爬虫技术与反爬虫技术之间的战争一直在继续。为了能使网络资源得到合情合理的采集,也有很多应用或网站提供了相应的API,通过调用这些API我们就能合理地拿到想要的数据信息。
下面将借助豆瓣API进行合理地获取豆瓣读书的信息。

一、了解豆瓣API

豆瓣为开发者提供了一个开发者文档,这里面有豆瓣API的参数说明和访问控制等信息


如果要使用豆瓣的API走正规渠道是需要进行身份验证即申请APIkey的,但是目前好像不能进行申请了,但是也不影响接下来通过API获取信息的实验。
从开发者文档那里了解到豆瓣读书的一些API的构造:

下面我将通过id来获取豆瓣的图书信息;其API如下:

https://api.douban.com/v2/book/:id  #id为图书的id号,例如:1220568

二、通过豆瓣读书的API获取图书信息

(1)通过php获取


  


运行,输入图书id:1220568 结果如下图:


当输入其他的id号时同样可以获取到对应的图书信息
(2)jq+ajax跨域获取
html文件中的表单

js文件:

$(document).ready(function(){
    document.getElementById('sub').onclick=function(){   #点击事件
        Get();  
    }   
});
function Get(){
    var bookid = $("#bookid").val();              #获取表单中传递的id值
        $.ajax({                                               #ajax跨域获取图书信息
            async:false,
            type : "get",
            url : "https://api.douban.com/v2/book/"+bookid,         
            dataType:"jsonp",                 
            success: function(result){                      #result为返回的图书信息是json格式的
                    var data ="";   
                    var title= result.title;      #获取图书名(这里先只获取图书名和简介,其他的内容获取方式基本一致)
                    var summary=result.summary;    #获取图书简介
                    data=title+summary             
                    $("#get").html(data);                #将获取到的图书名和 简介渲染到html对应的id为get的地方
            },
             error: function(error, data, type){
               alert(data + ": " + type + "."); //type isn't giving any response.
             }    
            });
}

结果展示:


你可能感兴趣的:(EX07——API调用练习)