从前大家朋友圈都在晒美食,晒旅游,晒玩乐,现在翻来朋友圈一看,竟然有很多人在晒炒股。这是一个好现象,说明人民日益增长的美好生活需要,已经从温饱休息,变成了投资和理财。股票和基金等似乎依然还是大众眼中新鲜和高级的事物,买过股票,涨涨跌跌,也值得网上凡尔赛一番。
我身边有不少人,靠股票、基金赚了一波,这得益于大行情,当然也有人亏了钱。
普通人炒股,其实大概率是亏的,一是因为贪婪、二是因为业余,贪婪不一定坏事,业余才真的要命,因为你永远赚不到认知之外的钱。
现在大家都在讨论价值投资,买股票实质是在买公司,评判价值的过程才是投资的精髓。
我觉得研究价值其实是研究数据背后的逻辑,靠数据去决策。
Python作为金融领域明星级的分析工具,在数据获取、清洗、分析、建模上都有全套的解决方案,比如说Pandas就是专门为金融分析开发的库。
这次我们来研究下如何用Python获取股票&基金数据,用作行业分析。
模块
话不多说先上需要调用到的模块。
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from lxml import etree
import requests
import re
import threading
import os
首页抓取
在天天基金中找到开放式基金,如下图,一共有 9340 支基金。
打开控制面板,找到 http://fund.eastmoney.com/data/rankhandler.aspx?op=ph&dt=kf&ft=all&rs=&gs=0&sc=6yzf&st=desc&sd=2020-11-18&… 的地址,这个地址返回的结果就是表格中的基金数据。
返回的数据类似于 json 串,根据观察基金代码似乎都是 6 位的数字,就可以使用正则表达式取到。
def crawler_front_page():
headers = {
'Referer': 'ht