听起来,爬取股票的所有历史交易数据跟高大上,有木有?
不过写这个爬虫的时候,发现基于网易财经的股票历史数据的爬取其实挺简单,最后再写到txt文档里(暂时写txt,以后会写csv的。可以在用机器学习干一些酷酷的事情~)
爬数据之前,先要看看url怎么构造啊,看了网易财经的url的构造,还真的是很亲民。
下面假设我们要爬取中国石油(601857)的2016年第4季度的数据,url就是下面这样。
url = 'http://quotes.money.163.com/trade/lsjysj_601857.html?year=2016&season=4'
仔细一看,构造url只需要3个参数就够了。
股票的代码:601857,年度:2016,季度:4 。
第一个参数,可以手动输入,后两个参数,可以用循环出多年度的多季度数据。
这个爬虫最重要的也就是循环爬取这些构造出来的url,
然后我们开始写爬取单个页面数据的函数:
爬取的过程呢,就是用BeautifulSoup来过滤源代码。
date = soup.select('div.inner_box > table > tr > td')
就可以获取当前页面,也就是一个年度中一个季度的所有股票交易数据,
然后循环处理一下,在每条数据中的每个数字之后加上空格,每条数据后加上换行,拼接成字符串,返回。
最后在循环url的函数中,循环调用单页面爬取函数,就可以爬取所有的股票数据了。
f = open('./' + title + '.txt', 'wb')
最后再写入一个以股票代码为文件名的txt文档里。