加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

用Python爬取金融市场数据

发布时间:2019-01-17 23:31:45 所属栏目:教程 来源:隠塵退士
导读:一、写在前面 因为在平常的事变中,必要对某信任网的信任在售和资管在售数据举办统计说明,可是一条一条的输入,显然过分耗时耗力,于是萌生了写个爬虫的设法。 一门计较机说话,可以当做是在仿照人的目标或意图来举办一系列举动或举措,以是在写代码之前

获取的response如下如:

用Python爬取金融市场数据

因此可写出如下正则,从左到右分派匹配出ID、产物名称、刊行机构、刊行时刻、产物限期、投资行业、首页收益。

  1. # 界说第3个函数parse_content_1,用来理会并匹配第一层网页内容,此处行使正则表达式要领 
  2. def parse_content_1(response): 
  3.  
  4.     # 写正则举办所需数据的匹配 
  5.     re_1 = re.compile( 
  6.     r'{"ROWID".*?"ID":"(.*?)","Title":"(.*?)","producttype".*?"issuers":"(.*?)","released":"(.*?) 0:00:00","PeriodTo":(.*?),"StartPrice".*?"moneyinto":"(.*?)","EstimatedRatio1":(.*?),"status":.*?"}') 
  7.     contents = re_1.findall(response) 
  8.     return contents 

⑤ 理会第二层网页的内容并输出数据

第二层行使bs4中的select+选择器的要领来举办。除了第一层所提取的数据外,还必要刊行地、收益分派方法、刊行局限、最低收益、最高收益和利率品级漫衍环境。

网页如下,可见,我们所必要的信息潜匿在一个又一个tr标签里,而这个tr标签处于id=“procon1”下的一个table标签里(此处有个坑,就是从网页来看,table下尚有个tbody标签,而现实获得的相应里并没有)。

用Python爬取金融市场数据

因为我们不是全部的信息都要,以是我们可以一个一个的提取,最终输出个数据。代码如下(这中间用到了前面提到的选择器常识和一些字符串处理赏罚要领):

  1. # 界说第4个函数parse_content_2,用来理会并匹配第二层网页内容,并输出数据,此处行使BeautifulSoup要领 
  2. def parse_content_2(response,content): 
  3.  
  4.     # 行使bs4举办爬取第二层信息 
  5.     soup = BeautifulSoup(response) 
  6.  
  7.     # 爬取刊行地和收益分派方法,该信息位于id为procon1下的table下的第4个tr里 
  8.     tr_3 = soup.select('#procon1 > table > tr')[3] 
  9. address = tr_3.select('.pro-textcolor')[0].text 
  10. r_style = tr_3.select('.pro-textcolor')[1].text  
  11.  
  12.     # 爬取刊行局限,该信息位于id为procon1下的table下的第5个tr里 
  13.     tr_4 = soup.select('#procon1 > table > tr')[4] 
  14. guimo = tr_4.select('.pro-textcolor')[1].text 
  15. re_2 = re.compile(r'.*?(d+).*?', re.S)  
  16.     scale = re_2.findall(guimo)[0] 
  17.    # 爬取收益率,该信息位于id为procon1下的table下的第8个tr里 
  18.     tr_7 = soup.select('#procon1 > table > tr')[7] 
  19. rate = tr_7.select('.pro-textcolor')[0].text[:(-1)] 
  20. r = rate.split('至') 
  21.   r_min = r[0] 
  22.     r_max = r[1] 
  23.  
  24.     # 提取利率品级 
  25.     tr_11 = soup.select('#procon1 > table > tr')[11] 
  26. r_grade = tr_11.select('p')[0].text 
  27.  
  28.     # 生涯数据到一个字典中 
  29.     item = { 
  30.     '产物名称':content[1], 
  31.     '刊行机构':content[2], 
  32.     '刊行时刻':content[3], 
  33.     '产物限期':content[4], 
  34.     '投资行业':content[5], 
  35.     '首页收益':content[6], 
  36.     '刊行地': address, 
  37.     '收益分派方法': r_style, 
  38.     '刊行局限': scale, 
  39.     '最低收益': r_min, 
  40.     '最高收益': r_max, 
  41.     '利率品级': r_grade 
  42.     } 
  43.  
  44.     # 返回数据 
  45.     return item 

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读