大数据 爬虫Python AI SqlPythoner集中营Python

Python爬虫-同花顺行业历史数据及成分股

2018-08-17  本文已影响38人  丨像我这样的人丨

Github

所有板块 板块历史走势 成分股 行业历史数据 成分股爬取存储

1. Q:如何获取板块日线K线图中的数据?

    A:图中的K线图不是flash动画,鼠标移动,是会显示每天的价格情况,因此猜测是JS动态加载生成的 通过F12抓包 无找到相应的js文件 运气使然 无意间点到K线图的+-缩放键 新增了两个文件 2017.js、2018.js 里面便有想要的数据,分别是17年和18年每天的数据 数据格式对应为日期、开盘价、最高价、最低价、收盘价、成交量、成交额  获取即可

2. Q:2017.js和2018.js的网址 打开或者requests后并无相应数据,如何解决? 如半导体及元件板块的js网址是http://d.10jqka.com.cn/v4/line/bk_881121/01/2017.js 打开后是404

   A:requests添加headers属性 headers属性中添加user-agent、Referer和Cookie

headers属性

3. Q:cookie容易失效 没爬几个网址就失效了,该如何解决?

    A:因为没有登录 所以网址给的是临时cookie 极其容易失效 两个解决办法:1:注册一个同花顺账号 登陆后 给的cookie失效更长 2.用 selenium模拟浏览器登录,获取每次的临时cookie 这样就不会失效

我选择了第二种方法 第一种方法使用账号的cookie,容易被封账号,也懒得注册一个账号 第二种方法的缺点就是每次都会打开一个浏览器 有点耗内存 不过实测没问题 

4. Q:用selenium模拟登陆,每次都会弹出浏览器 一闪一闪  光速开始又光速关闭 就像老有人在眼前晃 如何解决?

    A:使用无头模式 即表面不看到浏览器 和PhantomJS一样 那为啥不用PhantomJS呢 因为selenium不再支持了嘛

Chrome无头模式

5.Q:获取成分股中 有的板块只有一个 有的有多页 如何批量处理?

不同板块的成分股

    A:判断有没有“1/N”这样的标签 如果有则保存N 循环每一页到N位置 如 图中是1/4 获取4这个数 然后从1,2,3,4 循环到4  修改网页中的page即可 没有标签则默认取第一页

用try except 实现判断有无标签  并用yield url 保存网址

6.Q:抓取行业历史数据及成分股 耗时比较长 如单一个成分股 先保存所有的行业代码 再进入行业的主页 再获取当前页成分股 再点击下一页 直到没有 共有保存了3500多只股票及对应的成分股 耗时半小时 有没有办法加快爬取速度?

    A:使用多线程  开启pool池 实测半小时缩短为15分钟 还是有点效果的

Github

上一篇下一篇

猜你喜欢

热点阅读