selenium爬取上市公司全部行业及分行业股票行情数据(如何用python抓取股票数据)
上次制作了输入股票代码,显示股票行情、历史数据、股评词云图的网页,但是,想要判断一只股票的投资价值仅看它自己的历史走势是不够的,还要与其他个股尤其是同行业个股进行比较。当然,行业轮动时选对行业是投资成功的第一步,那么如何在对的行业里优中选优?亦或在错的行业中避免错上加错?因此,有必要进行不同行业特征,以及同行业中不同个股之间的比较。
炒股软件虽然提供了各行业股票行情,但是缺少个性化指标的分析,所以把各行业的股票信息分别爬取下来,以便后续分析。
首先,打开东方财富网行情中心网页,可以看到所有行业共分4页,每页有20个行业。
我们需要获取的是各个行业的详情页,即点击行业名称后跳转到该行业个股列表的详情数据。通过该网页前端源代码可以看到行业名称元素对应于一个网址,标签为href,这就是我们首先要点击进入的网址。定义函数get_url()获取这一网址,即各行业股票列表网址,并存储到字典url_dic中。
然后,点击某个行业(如“贵金属”),可以进入该行业详情页。将详情页下拉,可以看到下图所示的个股信息。但是这里的个股是不全的,需要点击“更多”获取该行业全部信息。
实际上,不难发现行业详情页的网址url和点击“更多”后跳转到的该行业全部股票列表网址存在部分相同,股票列表网址可以表示为
http://data.eastmoney.com/bkzj/+url[-6:]+.html
因此不需要进行模拟点击“更多”的操作,只需获取各行业详情页网址就可以直接编辑股票列表详情页并直接跳转。
进入全部股票列表页面后,还有一个问题,就是不同行业个股数量不同,总页面数也不同。比如,贵金属行业个股一共只有15只,只有一页即可放下,而软件服务行业个股有200只,共有4页(如下图)。所以,需要用专门的函数get_total_page(url)获取不同行业的股票页数。
这里有个坑,当总页数超过5页时,需要加入下面代码中的elif 判断语句,将全部页面加载出来后,再载计算总页数,否则会将总页数误认为只有5页。
下面定义获取每页股票信息的函数get_perpage_stock()
有了上面两个函数,即可定义获取各行业全部股票数据的函数get_all_stock(),将各行业全部股票保存到字典 all_data
爬取过程如下图,
全部代码可关注微信公众号“朋友不发圈”获取(经测试无误,可直接运行),整个程序耗时924.52秒。
相关文章
- 3月16日新股分析和复盘(大起大落的播恩集团)(播恩集团什么时候上市)
- 信达证券:多事件催化半导体回升预期 国产化仍为发展主旋律(信达半导体科技待遇)
- 茂莱光学鸣锣上市,多业务开拓并举,助力龙头攻坚先行地(茂莱光学股份有限公司累不累)
- 南京茂莱光学科技股份有限公司首次公开发行股票并在科创板上市发行公告(南京茂莱光学累不累)
- 南京茂莱光学科技股份有限公司 首次公开发行股票并在科创板上市 网上发行申购情况及中签率公告(南京茂莱光学2020年会)
- 精密光学“隐形冠军”将科创板上市,茂莱光学技术驱动成长特点显著(茂莱光学公司有女的吗)
- 3月9日主力抢筹日记:茂莱光学上市首日大涨185%,主力净买入8.45亿元(茂莱光学工资待遇咋样)
- 上市捷报丨沙利文祝贺南京茂莱光学科技股份有限公司成功登陆科创板(688502.SH)(茂莱(南京)仪器有限公司电话)
- 「新股前瞻」茂莱光学:毛利率远超行业均值,上市大涨200%背后估值是否公允?(茂莱光学科技股份有限公司)
- 沙弥新股申购解析:茂莱光学(2023-017)(茂莱仪器怎么样)