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
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
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
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
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