(python2.7)Django下實現查詢圖書館藏地的web api

先貼代碼,其它的以后再說
2016.9.23更新,更改了返回值數據類型,當請求帶callback參數時返回jsonp,否則返回json

urls.py

from django.conf.urls import *
from view import getLocationByName

urlpatterns = [
    url(r'^libBook$', getLocationByName),
]

library.py

# -*- coding:utf-8 -*-
__author__='ssins'

from bs4 import BeautifulSoup
import urllib2
import urllib
import re

def getLocationByNo(no):
    try:
        url = 'http://202.119.252.200:8080/opac/item.php'
        values = {'marc_no': no}
        data = urllib.urlencode(values)
        headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)'}
        requests = urllib2.Request(url, data, headers)
        respond = urllib2.urlopen(requests)
        bs = BeautifulSoup(respond.read(), 'lxml')
        tr = bs.find('tr', class_='whitetext')
        td = tr.find('td', width='25%')
        return td.string.strip()
    except:
        return None

def getNoByName(name):
    try:
        url = 'http://202.119.252.200:8080/opac/openlink.php'
        values = {'title': name}
        data = urllib.urlencode(values)
        headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)'}
        requests = urllib2.Request(url, data, headers)
        respond = urllib2.urlopen(requests)
        bs = BeautifulSoup(respond.read(), 'lxml')
        h3 = bs.find('h3')
        a = h3.find('a')
        return re.search('\d+',a['href']).group()
    except:
        return None

view.py

# -*- coding:utf-8 -*-
__author__='ssins'

from django.http import HttpResponse
from library import getLocationByNo
from library import getNoByName
import json

def getLocationByName(requset):
    name = requset.GET['name']
    print type(name)
    location = getLocationByNo(getNoByName(name.encode('utf8')))
    result = {'location':location}
    resultJ = json.dumps(result)
    try:
        callback = requset.GET['callback']
        return HttpResponse(callback + '( ' + resultJ + ' );')
    except:
        return HttpResponse(resultJ)
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容