大概在前年年末时候,我曾经和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形式提供给大家啊,到底有 多少人用呢?算是市场调查吧。
于是我用我熟悉的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 (澳大利亚证券交易所)是澳洲金融数据的最大金融寡头,绝对垄断。
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?
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
开始感觉这个侵权有点莫名其妙,看到最后才明白还真是有道理
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
我开始也没觉得,不然就不会那么大张旗鼓了:)
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit