股票小工具-爬取同花顺问财选股结果

同花顺问财非常有名,可以根据自然描述获取选股结果,这里写了个小工具,也就是爬虫,来获取爬取结果
实现的功能:
1.多页数据全爬取
2.数据解析
欢迎加VX号(edgarcaixm)交流

# -*- coding: utf8 -*-

import requests
from ghost import Ghost
from requests.cookies import RequestsCookieJar
import re
import json
import types
import sys

def printlist(resultList):
    if type(resultList) is list:
        for i in resultList:
           printlist(i)
    else:
        if type(resultList) is bytes:
            print(resultList.encode('utf-8'))
        else:
            print(resultList)

def dosearch(argname):
    # reload(sys)
    # sys.setdefaultencoding('utf-8')
    ghost = Ghost()
    cj = RequestsCookieJar()
    headers = {'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
               'Accept - Encoding': 'gzip, deflate',
               'Accept-Language': 'zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3',
               'Connection': 'Keep-Alive',
               'Host': 'www.iwencai.com',
               'Upgrade-Insecure-Requests': '1',
               'User-Agent': 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 '
                             '(KHTML, like Gecko) Chrome/31.0.1650.16 Safari/537.36'}

    print(u"同花顺问财选股开始")
    # 获取同花顺为每个股票代码设定的fid
    parms = {'typed': '0', 'f': '1', 'qs': 'result_original', 'tid': 'stockpick', 'ts': '1',
             'w': argname}
    url = 'http://www.iwencai.com/stockpick/search'
    with ghost.start() as session:
        session.delete_cookies()
        session.open(url, method="get", timeout=30)
        session.save_cookies(cj)
    s = requests.Session()
    requestPage = s.get(url, params=parms, headers=headers, timeout=3,cookies=cj)

    match=re.search(r'allResult = {(.+)};',requestPage.text)
    stockinfo=''
    if match :
        stockinfo = str(match.group(1))
    stocklist="{"
    stocklist += stockinfo
    stocklist += "}"
    stockinfo ="{"+stockinfo+"}"
    decodejson = json.loads(stockinfo)
    total = str(decodejson['total'])
    print('总共有:%s个,分别为:' % total)
    wccode2hq = decodejson['wccode2hq']
    for j in wccode2hq:
        print(j)
    title = str(decodejson['title'])
    # print('标题:%s' % title.decode('unicode-escape').encode('utf-8'))
    print('标题:%s' % title)
    result = decodejson['result']
    dataidx=1
    if type(result) is list:
        for i in result:
            print('------第%d行数据打印开始------'%dataidx)
            printlist(i)
            # print('------第%d行数据打印结束--------'%dataidx)
            dataidx+=1


def main():
    args = '本周板块指数创新高 本周成交量/上周成交量 周阳线 由高到低排序'
    args = '板块指数 本周成交量/上周成交量 由高到低排序 周阳线'
    # 所属概念包含XXX 本周成交量/上周成交量 由高到低 周阳线
    # args = '所属概念包含白马股'
    dosearch(args)


if __name__ == '__main__':
    main()

非常好的模式,让我今年收益翻倍的文章,强烈推荐:
2020年4月至6月净利润断层实战小结-真香~

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明AI阅读 16,030评论 3 119
  • Python 笔记五:Flask的N种可能性 其实,Flask框架教程太多,我不能把所有功能都写一遍,也没有意义。...
    brandonxiang阅读 6,931评论 0 24
  • 窗外淅淅沥沥的小雨,轻轻的拍打着窗台,奏起了乐章,沐成溪睁开眼,看着天花板,愣愣的,不知道在想什么。 “咔”门...
    竹笋儿阅读 425评论 0 0
  • 坐落于高山之上 视野再大也只有你是个方向 山下流淌的溪河 伴我们走过儿时成长的漫长 亭中我用思念与倾慕吟唱 对岸我...
    RazLi阅读 192评论 0 1
  • 感谢你,让我不断学习 文|笑看人生 亲爱的儿子,当有了你之后,我的生活就变得忙碌而有意义。你从呱呱坠地的那一刻,我...
    笑看人生_b68a阅读 276评论 0 1