bangumi接口二三事

发布于 2020-01-30  208 次阅读


寒假在家瞎折腾,想通过调用bangumi接口获得的数据丰富下个人blog的acg清单页面,流水账记录下杂七杂八的东西。

1. 获得返回数据

首先想的是直接在前端用js通过ajax请求访问接口,在测试的时候发现了跨域问题

跨域:指的是浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器对javascript施加的安全限制。

例如:a页面想获取b页面资源,如果a、b页面的协议、域名、端口、子域名不同,所进行的访问行动都是跨域的,而浏览器为了安全问题一般都限制了跨域访问,也就是不允许跨域请求资源。注意:跨域限制访问,其实是浏览器的限制。理解这一点很重要!!!

同源策略:是指协议,域名,端口都要相同,其中有一个不同都会产生跨域;

由于所访问的接口是别人已经部署好的,所有有关后端的解决方法完全无效。又搜了几个只改vue的解决方案,发现还需要先重新配置好开发环境与工具,果断换思路...

现在的解决方案是:本机访问外部接口后获得数据后,前端在调用本机接口。相当于本机后端的django充当了中介作用。

但是测试时候发现用python的request库访问接口时总返回520,但是浏览器输url就能有正确的json数据...左思右想后发现,我在后端所做的操作不就相当于爬虫嘛,构造一个浏览器的header说不定可行

url = 'https://api.bgm.tv/user/larid'
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64)'
                             ' AppleWebKit/537.36 (KHTML, like Gecko) '
                             'Chrome/51.0.2704.63 Safari/537.36'}
response = requests.get(url=url,headers=headers)

返回状态码为200,成功调用接口


阿克西斯上没有什么重要的东西