分类 默认分类 下的文章

okex本地正常,但放到国外服务器报错:Access Denied The owner of this website has banned your access based on your browser's signature

故障现象:本地(国内IP)调试正常,放到国外服务器上,程序就报错,Access Denied The owner of this website has banned your access based on your browser's signature

这是在爬虫中一类比较常见的问题,远端服务器为防止各类攻击行为,会对请求做判断。
okex也一样,但可惜的是,okex官方API文档中的说明不够详尽。

官方说明:

![2345截图20171028170615.png][1]

按照官方配置说明,报错依旧。

直接通过国外服务器访问okex的depth页面,正常。

总体来说,是因为headers的问题,于是直接忽略官方文档的提示,将headers改进一下

headers = {
               'apisign':sign,
               "Content-type" : "application/x-www-form-urlencoded",
                'Connection':'keep-alive',
                'Cache-Control':'max-age=0',
                'Accept': 'text/html, */*; q=0.01',
                'X-Requested-With': 'XMLHttpRequest',
                'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.89 Safari/537.36',
                'DNT':'1',
                'Accept-Language': 'zh-CN,zh;q=0.8,ja;q=0.6',
               }  

恢复正常。

其实就是骗了一下对方服务器,说我其实是个浏览器。
[1]: http://www.zilly.cn/usr/uploads/2017/10/1770619581.png

服务器获取到远程的timestamp总是不准?

不准的原因我不知道,同步周期默认5分,通过以下参数,修改为你想要的时间间隔即可:

HKEY_LOCAL_MACHINE->SYSTEM->CurrentControlSet->Services->W32Time->TimeProviders->NtpClient分支,并双击SpecialPollInterval键值,将对话框中的“基数栏”选择到“十进制”上,输入框中显示的数字正是自动对时的间隔(以秒为单位),比如默认的604800就是由7(天)×24(时)×60(分)×60(秒)计算来的。设定时间同步周期为一天,即24小时(86400秒),填入对话框,选十进制就填86400,选十六进制就填15180,点击确定保存关闭对话框。

我设置了 30秒更新一次。

bitbay 下订单API报错:{'code': 0, 'message': 'offer funds scale issue'}

通过查看日志,发现下订单时,有时候没问题,有时候就报这个错误。
字面意思:提供的资金规模问题。
其实意思是说,资金的数量,amount有问题,我不知道为什么用scale代替API文档中出现的amount,但最后发现,实际是发送的数量有问题。
什么问题呢?

是python的浮点运算的问题,当对str进行float时,比如你提供了0.104,float后,变成了0.10400000000000001,这时候,API下单就会报错:{'code': 0, 'message': 'offer funds scale issue'}

通过格式修改,把数值修改为0.104后,就不再报错了。

python3中os库使用笔记

python3里很多库的使用都和python2里不同了,所以做了个系列笔记,当工作中碰到了某个库,就记录在这里。

os库主要用来对操作系统进行一些操作,本文中使用的全部为windows系统。

1、os.getcwd() 获取当前路径

import os
path = os.getcwd()
print(path)

2345截图20170625162608.png

2、os.system() 执行系统命令,相当于cmd

例1:调用ping命令

import os

os.system('ping 222.222.222.222')

2345截图20170625163133.png

关于这个乱码的事情,请参照我的另一篇文章:WIN8下python3使用os.system命令输出时Hbuilder控制台出现中文乱码的解决方法

例2:查看网络配置

import os

os.system('ipconfig')

2345截图20170626054654.png

例3:打开文件

import os

os.system('call "D:\\aaa.txt"')

2345截图20170626055000.png

3、os.remove(file) 删除文件

import os

os.remove('D:\\aaa.txt')