美文网首页大数据 爬虫Python AI SqlPythoner集中营Python
Python爬虫-同花顺行业历史数据及成分股

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

作者: 丨像我这样的人丨 | 来源:发表于2018-08-17 13:53 被阅读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

    相关文章

      网友评论

        本文标题:Python爬虫-同花顺行业历史数据及成分股

        本文链接:https://www.haomeiwen.com/subject/yjezbftx.html