豆瓣API获取书籍详细信息
来源:互联网 发布:中日友好 知乎 编辑:程序博客网 时间:2024/05/18 03:04
当我们需要使用书籍详细信息时,如向数据库中录入书籍的信息,如果通过人工输入的方式不仅会十分的繁琐,而且容易出错。豆瓣提供了相关API,可以直接通过书籍的ISBN码,获取该书籍的详细信息。
程序下载(C#代码):点击打开链接
程序下载(Java代码):点击打开链接
下面以C#为例介绍如何通过豆瓣API获取书籍的详细信息。
豆瓣API:https://api.douban.com/v2/book/isbn/
程序运行截图如下所下,只展示了书籍的部分信息。大家可以根据自己的需要,从获取的json数据中解析出需要的书籍信息。
1. 通过Http Get请求从豆瓣获取书籍json数据。
//HTTP的GET请求,获取书籍详细信息private static string doGet(string url, string charset){ HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); request.Method = "GET"; request.ContentType = "text/html;charset=UTF-8"; HttpWebResponse response = (HttpWebResponse)request.GetResponse(); if (response != null) { Stream myResponseStream = response.GetResponseStream(); StreamReader myStreamReader = new StreamReader(myResponseStream, System.Text.Encoding.GetEncoding(charset)); string retString = myStreamReader.ReadToEnd(); myStreamReader.Close(); myResponseStream.Close(); return retString; } throw new Exception();}2. 对获取到的json数据进行解析:
(1)根据自己的需要创建一个类,用于保存解析的结果
//豆瓣API返回的信息很多,可以根据自己的需要重新定义该类public class BookInfo{ //标题 public string title { get; set; } //作者 public string[] author { get; set; } //出版社 public string publisher { get; set; } //封面图片的url public string image { get; set; } //isbn10 public string isbn10 { get; set; } //isbn13 public string isbn13 { get; set; } //出版日期 public string pubdate { get; set; } //概述 public string summary { get; set; } //页数 public string pages { get; set; } //价格 public string price { get; set; } //获取失败的返回信息 public string msg { get; set; } public string code { get; set; }}(2)解析函数
//Json解析private static BookInfo toMap(string jsonString){ //实例化JavaScriptSerializer类的新实例 JavaScriptSerializer jss = new JavaScriptSerializer(); try { //将指定的 JSON 字符串转换为 Dictionary<string, object> 类型的对象 return jss.Deserialize<BookInfo>(jsonString); } catch { return null; }}3. 根据书籍的ISBN码获取书籍详细信息
//根据ISBN码从豆瓣API获取书籍详细信息public static bool getInfo(string isbn, out BookInfo bookInfo, out string json){ try { //豆瓣API string uri = "https://api.douban.com/v2/book/isbn/" + isbn; //获取书籍详细信息,Json格式 json = doGet(uri, "utf-8"); //将获取到的Json格式的文件转换为定义的类 bookInfo = toMap(json); return true; } catch { //信息获取失败 bookInfo = null; json = ""; return false; }}4. 根据url获取书籍的封面图片
//HTTP获取图片,获取书籍封面public static Image doGetImage(string url){ WebRequest request = WebRequest.Create(url); WebResponse response = request.GetResponse(); if (response != null) { Stream stream = response.GetResponseStream(); return Image.FromStream(stream); } return drawCover();}
0 0
- 豆瓣API获取书籍详细信息
- C# 网络编程之通过豆瓣API获取书籍信息
- 使用豆瓣书籍API获取json类型的数据
- 豆瓣API获取authorization_code时出错
- 微信小程序使用RESTFul获取豆瓣API
- 调用豆瓣的接口根据ISBN获取书籍信息
- 利用爬虫获取豆瓣上可能喜欢的书籍
- 豆瓣API
- C++通过WIN32 API获取逻辑磁盘详细信息
- C++ 通过WIN32 API 获取逻辑磁盘详细信息
- C++ 通过WIN32 API 获取逻辑磁盘详细信息
- C++ 通过WIN32 API 获取逻辑磁盘详细信息
- C++ 通过WIN32 API 获取逻辑磁盘详细信息
- C++ 通过WIN32 API 获取逻辑磁盘详细信息
- C++ 通过WIN32 API 获取逻辑磁盘详细信息
- 根据ISBN获取豆瓣API提供的图书信息
- 通过豆瓣Api,输入ISBN获取图书信息
- 通过豆瓣Api,输入ISBN获取图书信息
- 【LeetCode】 215. Kth Largest Element in an Array
- Ubuntu 16.04 mate 树莓派 默认源
- 今天接过来一个网站,想登录管理页面,不过密码是一串“f6f22515b3cebb8e759640cd7d2f74ac”登录不进,MD5加密的,那要怎么登录??
- Xcode实用快捷键
- 集合框架_键盘录入学生信息按照总分排序后输出在控制台案例)
- 豆瓣API获取书籍详细信息
- python实现监控磁盘情况,并邮件报警
- 怎么判断SharedPreferences 的某个记录已存在呢
- 新手,要做一个截屏程序,请帮忙,解决了再加分。
- 前端技术学习之选择器(二)
- 应用销毁后,有办法能接收到推送吗?
- 关于手机网站自动登录的功能
- 求一个android打开各种类型文件的demo
- 经典进程同步问题:读者-写者问题