Beispiel #1
0
def stock_base_info(code):
    """
    得到股票其他的基础数据信息
    包含:
    pe_trands 市盈率(动态):47.98
    type 分类 :big(大盘股)medium (中盘股)small(小盘股)
    pe_static 市盈率(静态):8.61
    total_capital 总股本 44.7亿股
    ciculate_capital 流通股本 44.7亿股
    pb 市净率 1.24

    """
    url = "http://basic.10jqka.com.cn/%s/" % code
    content = httpGetContent(url)
    if content:
        stock_dict = {}
        soup = BeautifulSoup(content)
        profile = soup.select('div#profile')
        table = profile[0].select('table')[1]
        td_list = table.select('td')
        td_select = lambda td: td.select('span')[1].text
        # regex = re.compile(r'^([0-9]{1,}[.][0-9]*|-[0-9]{1,}[.][0-9]*|\d+|-\d+)')
        # find = lambda value: float(re.findall(regex, value)[0]) if re.findall(regex, value) else None
        stock_dict["code"] = code
        for i, td in enumerate(td_list):
            if i == 0:  # 市盈率(动态):
                stock_dict["pe_ratio_dynamic"] = validate_decimal(
                    td_select(td))
            elif i == 3:  # 分类
                text = td_select(td)
                if text == u"大盘股":
                    stock_dict['type'] = 'big'
                elif text == u'中盘股':
                    stock_dict['type'] = 'medium'
                elif text == u"小盘股":
                    stock_dict['type'] = 'small'
                else:
                    stock_dict['type'] = text
            elif i == 4:  # 市盈率(静态)
                stock_dict['pe_ratio_static'] = validate_decimal(td_select(td))
            elif i == 7:  # 总股本
                stock_dict['total_capital'] = validate_decimal(td_select(td))
            elif i == 8:  # 市净率
                stock_dict['pb'] = validate_decimal(td_select(td))
            elif i == 11:  # 流通股本
                stock_dict['circulate_capital'] = validate_decimal(
                    td_select(td))
        return stock_dict
Beispiel #2
0
def stock_base_info(code):
    """
    得到股票其他的基础数据信息
    包含:
    pe_trands 市盈率(动态):47.98
    type 分类 :big(大盘股)medium (中盘股)small(小盘股)
    pe_static 市盈率(静态):8.61
    total_capital 总股本 44.7亿股
    ciculate_capital 流通股本 44.7亿股
    pb 市净率 1.24

    """
    url = "http://basic.10jqka.com.cn/%s/" % code
    content = httpGetContent(url)
    if content:
        stock_dict = {}
        soup = BeautifulSoup(content)
        profile = soup.select('div#profile')
        table = profile[0].select('table')[1]
        td_list = table.select('td')
        td_select = lambda td: td.select('span')[1].text
        # regex = re.compile(r'^([0-9]{1,}[.][0-9]*|-[0-9]{1,}[.][0-9]*|\d+|-\d+)')
        # find = lambda value: float(re.findall(regex, value)[0]) if re.findall(regex, value) else None
        stock_dict["code"] = code
        for i, td in enumerate(td_list):
            if i == 0:    # 市盈率(动态):
                stock_dict["pe_ratio_dynamic"] = validate_decimal(td_select(td))
            elif i == 3:  # 分类
                text = td_select(td)
                if text == u"大盘股":
                    stock_dict['type'] = 'big'
                elif text == u'中盘股':
                    stock_dict['type'] = 'medium'
                elif text == u"小盘股":
                    stock_dict['type'] = 'small'
                else:
                    stock_dict['type'] = text
            elif i == 4:  # 市盈率(静态)
                stock_dict['pe_ratio_static'] = validate_decimal(td_select(td))
            elif i == 7:  # 总股本
                stock_dict['total_capital'] = validate_decimal(td_select(td))
            elif i == 8:  # 市净率
                stock_dict['pb'] = validate_decimal(td_select(td))
            elif i == 11: # 流通股本
                stock_dict['circulate_capital'] = validate_decimal(td_select(td))
        return stock_dict
Beispiel #3
0
def stock_finical_post():
    """抓取同花顺业绩公告板块
    http://data.10jqka.com.cn/financial/yjgg/
    http://data.10jqka.com.cn/financial/yjgg/page/56/ajax/1/
    """
    headers = {
        "Host": "data.10jqka.com.cn",
        "Referer": "http://data.10jqka.com.cn/financial/yjyg/",
        "X-Requested-With": "XMLHttpRequest"
    }
    count = range(1, 60)
    urls = [
        "http://data.10jqka.com.cn/financial/yjgg/page/%s/ajax/1/" % num
        for num in count
    ]
    for url in urls:
        content = httpGetContent(url, headers, "gb2312")
        if content:
            soup = BeautifulSoup(content)
            stock_item = soup.select("tbody > tr")
            for item in stock_item:
                tds = item.select('td')
                stock_dict = {}
                for i, td in enumerate(tds):
                    if i == 1:  # 代码
                        stock_dict["code"] = td.select('a')[0].string
                    elif i == 3:  # 日期
                        stock_dict["date"] = str_to_date(td.string, "%Y-%m-%d")
                    elif i == 4:  # 每股收益
                        stock_dict["earnings"] = decimal(td.string)
                    elif i == 5:  # 营业收入
                        stock_dict["main_income"] = decimal(td.string)
                    elif i == 6:  # 营业收入同比增长%
                        stock_dict["income_rise"] = validate_decimal(td.string)
                    elif i == 7:  # 净利润 万元
                        stock_dict["net_profit"] = decimal(td.string)
                    elif i == 8:  #净利润同比增长%
                        stock_dict["net_profit_rise"] = validate_decimal(
                            td.string)
                yield stock_dict
Beispiel #4
0
def stock_finical_post():
    """抓取同花顺业绩公告板块
    http://data.10jqka.com.cn/financial/yjgg/
    http://data.10jqka.com.cn/financial/yjgg/page/56/ajax/1/
    """
    headers = {
        "Host": "data.10jqka.com.cn",
        "Referer": "http://data.10jqka.com.cn/financial/yjyg/",
        "X-Requested-With": "XMLHttpRequest"
    }
    count = range(1, 60)
    urls = ["http://data.10jqka.com.cn/financial/yjgg/page/%s/ajax/1/" % num for num in count]
    for url in urls:
        content = httpGetContent(url, headers, "gb2312")
        if content:
            soup = BeautifulSoup(content)
            stock_item = soup.select("tbody > tr")
            for item in stock_item:
                tds = item.select('td')
                stock_dict = {}
                for i, td in enumerate(tds):
                    if i == 1:   # 代码
                        stock_dict["code"] = td.select('a')[0].string
                    elif i == 3: # 日期
                        stock_dict["date"] = str_to_date(td.string, "%Y-%m-%d")
                    elif i == 4: # 每股收益
                        stock_dict["earnings"] = decimal(td.string)
                    elif i == 5: # 营业收入
                        stock_dict["main_income"] = decimal(td.string)
                    elif i == 6: # 营业收入同比增长%
                        stock_dict["income_rise"] = validate_decimal(td.string)
                    elif i == 7: # 净利润 万元
                        stock_dict["net_profit"] = decimal(td.string)
                    elif i == 8: #净利润同比增长%
                        stock_dict["net_profit_rise"] = validate_decimal(td.string)
                yield stock_dict
Beispiel #5
0
def stock_base_info(code):
    """
    得到股票其他的基础数据信息
    包含:
    pe_trands 市盈率(动态):47.98
    type 分类 :big(大盘股)medium (中盘股)small(小盘股)
    pe_static 市盈率(静态):8.61
    total_capital 总股本 44.7亿股
    ciculate_capital 流通股本 44.7亿股
    pb 市净率 1.24

    """
    url = "http://basic.10jqka.com.cn/%s/" % code
    content = httpGetContent(url)
    if content:
        stock_dict = {}
        soup = BeautifulSoup(content)
        profile = soup.select('div#profile')

        table = profile[0].select('table')[0]
        td_list = table.select('td')
        td_select_key = lambda td: td.select('span')[0].text.strip().replace(
            '\t', '')
        td_select_value = lambda td: td.select('span')[1].text.strip().replace(
            '\t', '')
        for i, td in enumerate(td_list):
            #print td_select_key(td), td_select_value(td)
            #stock_dict[td_select_key(td)] = td_select_value(td)
            if i == 0:  # 主营业务:
                stock_dict["main_busyness"] = td_select_value(td)
            elif i == 1:  # 所属行业:
                stock_dict["industry"] = td_select_value(td)
            elif i == 2:  # 涉及概念:
                stock_dict["concept"] = td_select_value(td)

        table = profile[0].select('table')[1]
        td_list = table.select('td')
        td_select_key = lambda td: td.select('span')[0].text.strip().replace(
            '\t', '')
        #td_select_value = lambda td: td.select('span')[1].text.strip().replace('\t','')
        td_select = lambda td: td.select('span')[1].text.strip().replace(
            '\t', '')
        for i, td in enumerate(td_list):
            #print td_select_key(td), td_select_value(td)
            #stock_dict[td_select_key(td)] = td_select_value(td)
            stock_dict["code"] = code
            if i == 0:  # 市盈率(动态):
                stock_dict["pe_ratio_dynamic"] = validate_decimal(
                    td_select(td))
            elif i == 2:  # 净资产收益率
                stock_dict['return_on_equity'] = validate_decimal(
                    td_select(td))
            elif i == 3:  # 分类
                text = td_select(td)
                if text == u"大盘股":
                    stock_dict['type'] = 'big'
                elif text == u'中盘股':
                    stock_dict['type'] = 'medium'
                elif text == u"小盘股":
                    stock_dict['type'] = 'small'
                else:
                    stock_dict['type'] = text
            elif i == 4:  # 市盈率(静态)
                stock_dict['pe_ratio_static'] = validate_decimal(td_select(td))
            elif i == 5:  # 营业收入
                stock_dict['income'] = validate_decimal(td_select(td))
            elif i == 6:  # 每股净资产
                stock_dict['assert_per_share'] = validate_decimal(
                    td_select(td))
            elif i == 7:  # 总股本
                stock_dict['total_capital'] = validate_decimal(td_select(td))
            elif i == 8:  # 市净率
                stock_dict['pb'] = validate_decimal(td_select(td))
            elif i == 9:  # 净利润
                stock_dict['net_profit'] = validate_decimal(td_select(td))
            elif i == 10:  # 每股现金流
                stock_dict['cash_flow_per_share'] = validate_decimal(
                    td_select(td))
            elif i == 11:  # 流通股本
                stock_dict['circulate_capital'] = validate_decimal(
                    td_select(td))

        #for item in stock_dict:
        #    print item, stock_dict[item]

        return stock_dict