我和ASX(澳大利亚证券交易所)的一次知识产权的纠纷

10개월 전

大概在前年年末时候,我曾经和ASX(澳大利亚证券交易所) 有过一次小小的知识产权纠纷,我收到了它们的律师发给我的信,说我侵犯了它们的知识产权(Intellectual Property)。我今天就来回忆一下这个事情的起始原因和最终怎么解决的,分享给大家一些这方面的经验,也给大家一些警示。

和很多个人投资者一样,我一直很喜欢通过一些数据分析来提供股票的买卖时机参考,喜欢搞一堆上市公司的数据进行建模,backtest,然后提供自己投资依据。当时此方面数据来源最丰富的要数yahoo finance,它提供非常完整的API,可以获得ASX那些上市公司的所有年份的资产负债表,现金流量表和利润表。当时有一个著名的pyalgotrade,可以从yahoo-finance来import数据,然后进行各种策略分析,比如:

from pyalgotrade.tools import yahoofinance
from pyalgotrade.barfeed import yahoofeed
from pyalgotrade import bar
from pyalgotrade import strategy

进行策略分析最重要的就是数据来源,就像一个人需要粮食。yahoo finance有各种数据来源,澳大利亚证券市场的,美股的,甚至A股的,十分丰富。 后来我发现每次运行澳大利亚的证券程序它就异常退出,然后我查了下,发现是数据来源断了,开始我以外是yahoo finance的意外,等了一段时间,结果还是不行,我就上网去搜,然后我就看到这个帖子,上面热议没有yahoo finance的数据来源该怎么办,我就好奇了,不是说国外都是机构投资者吗,怎么这么多个体在讨论炒股建模的事情呢? 我又去找yahoo finance的官方说明,结果没有说明原因,就说再也不提供ASX的数据了,但是我看yahoo 的网站还是有大量的日线,周线,月线和年报的数据,那我觉得原来那些API做的事情不就是把这些数据提取出来给大家吗,我也可以把这些数据提取出来,以API形式提供给大家啊,到底有 多少人用呢?算是市场调查吧。

image.png

于是我用我熟悉的Python做了一些爬虫,每日,每周,每月爬取上面的数据,经过自动整理归类到.csv文件中。

browser = webdriver.PhantomJS(executable_path='/usr/local/bin/phantomjs')                
    print(url)
    browser.get(url)
    time.sleep(1)
    elem = browser.find_element_by_tag_name("body")

while no_of_pagedowns:
    browser.execute_script("window.scrollTo(0, document.body.scrollHeight);")
    time.sleep(0.5)
    no_of_pagedowns-=1
    
source_data = browser.page_source

try:
    soup = BeautifulSoup(source_data, "lxml")
    tb = soup.find("table",attrs = {"data-test":"historical-prices"})
    na_values = ['NaN', 'N/A', '-']
    df1 = pd.read_html(str(tb),header=0,index_col=0,na_values=na_values)

其实个人投资者需要的主要分析数据就是日线,月线数据,也有些人需要资产负债表,利润表啊和现金流量表的数据来选股,比如我。

接着又用flask做了个restful API 服务器,来提供json格式的数据服务。还弄了个统计用户的模块来看每天到底有多少人访问,后来我知道其实这个统计的事情最好由google analytics来做。

from flask_limiter import Limiter
from flask_limiter.util import get_ipaddr
from flask import Flask, request, g
from flask import render_template,jsonify
import urllib.request
import pandas as pd
import flask_monitoringdashboard as dashboard

from gevent import monkey
from gevent.pywsgi import WSGIServer
monkey.patch_all()

接着我就找了个免费的aws服务器,亚马逊有一年的free limit的套餐,我把这些玩意放上去,又用了gunicorn,nginx这些玩意跑我的服务,效果见这个帖子。除了那个域名biglion是我花了点钱买的,其它都是免费。

我把这个发到那个征求替代产品的帖子上,结果过了几天,流量就来了,2周时间就达到了每天几百人的访问,您要是做过个人博客,就知道一个网站,在最初2周时间能每天有几百人访问是多么不容易的事情。这还真出乎我的意料。免费东西大家喜欢,但是我没想到澳大利亚个体投资者那么多。

没多久,我就收到ASX的律师来邮件,说我'breach the ASX IP',就是我侵犯了它们的知识产权,从邮件的扩展名来看,绝不是骗子邮件,从内容来看,有理有据,当时我纳闷啊,它怎么找到我的呢?第二个纳闷的地方是,我咋就侵犯你的知识产权了呢?我是从yahoo finance的公开地方取数据啊。

为了解开第一个疑问,我想它唯一的途径就是我的域名,于是我问了买域名的公司GoDaddy,它告诉我,它们的域名对应的用户信息,可以通过"whois" 来公开查询的,靠,我虽然很生气,这样用户隐私就没保障了,但是也很无奈,后来我知道,也有很多域名提供商,价格比GoDaddy便宜,而且还保护开设者的隐私不被“whois"查到。

第一个谜团解开了,我就开始解第二个谜团。这个就需要找专业律师了,我知道维州可以有半小时免费专业律师服务,我就上网找了一些律师信息,找到一个专门搞知识产权的律师,其他一些我觉得搞这个不专业。于是我跟他预定了时间谈谈。 当然去之前,我是经过一番准备的,因为我怀疑律师是否知道那些细节的东西,比如数据来源,经过交谈,我明白了几个事情,第一,yahoo finance的金融数据也是从ASX取来的,因为在全世界ASX 是唯一澳大利亚证券数据的最初来源,别人从它那里取数据都是要收钱的,而且收数据后,关于数据的派发权,能提供个几个终端用户都是不一样的,从yahoo finance取数据,算是间接侵权,既然对方给我发邮件了,而且发邮件给我的是一个实习律师,说明对方就希望这事化小,我把服务关了就得了,然后告诉他们一下。第二,如果我把取数据,数据分析和如果提供restful API的技术公开写出来,这个不属于侵权,属于技术分享。

事情到此,我回去就把那个服务关闭了,并且回信给ASX,他们也认同了。同时我也大概明白为何yahoo finance要把它的API关掉了,估计也是知识产权问题。 这种金融数据服务,你终端允许提供给几个客户,是允许你数据显示,还是提供API,是实时数据,还是带delay的,在购买数据的时候就已经规定好了,有不同的license。同时也说明,ASX (澳大利亚证券交易所)是澳洲金融数据的最大金融寡头,绝对垄断。

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
STEEMKR.COM IS SPONSORED BY
ADVERTISEMENT
Sort Order:  trending

Hi! Did you know that steemit.com is now censoring users and posts based on their opinions?
All the posts of these users are gone!
https://github.com/steemit/condenser/commit/3394af78127bdd8d037c2d49983b7b9491397296

Here's a list of some banned users:
'roelandp', 'blocktrades', 'anyx', 'ausbitbank', 'gtg', 'themarkymark', 'lukestokes.mhth', 'netuoso', 'innerhive'
See anyone you recognize? There could be more, they also have a remote IP ban list.

Will you be censored next?

开始感觉这个侵权有点莫名其妙,看到最后才明白还真是有道理

·

我开始也没觉得,不然就不会那么大张旗鼓了:)