python-爬取印度银行对应的ifsc

数据来源:https://economictimes.indiatimes.com/wealth/ifsc-bank-code

Python获取印度各银行对应的ifsc(前4位):

import requests
import re
headers = {
        "User-Agent":"Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36"
    }
html = requests.get(url = 'https://economictimes.indiatimes.com/wealth/ifsc-bank-code', headers=headers)
# 转换数据格式
html = html.text
bank_value = re.compile('<span class="ifscdata-option">(.*?)</span>')
bank_text = re.findall(bank_value, html)[0]

# 检索银行name
bank_name_value = re.compile('<option value="(.*?)"')
# 检索邦state
state_value_1 = re.compile('"stateList":(.*?),"bankName":')
state_value_2 = re.compile('"key":"(.*?)"}')
# 检索district
district_value = re.compile('"key":"(.*?)"}')
# 检索branch
branch_value = re.compile('"key":"(.*?)"}')
# 检索ifsc
ifsc_value = re.compile('"ifsc":"(.*?)"')

bank_name_list = re.findall(bank_name_value, bank_text)
print('银行列表size:', len(bank_name_list))

import xlsxwriter
workbook = xlsxwriter.Workbook('bank_ifsc.xlsx')
worksheet = workbook.add_worksheet()
r = 0
for bank_name in bank_name_list:
    print('r:', r, ',bank_name:', bank_name)
    ## 获取state,选择其一
    res_state = requests.get('https://mfapps.indiatimes.com/ET_Calculators/statesByBank.htm?bankname=%s&callback=objIFSC.stateDataRender' % bank_name)
    res_state = res_state.text
    res_state = re.findall(state_value_1, res_state)[0]
    state = re.findall(state_value_2, res_state)[0]
    #print('邦:' , state)

    ## 获取district,选择其一
    res_district = requests.get('https://mfapps.indiatimes.com/ET_Calculators/getDistrictByBankAndState.htm?bankname=%s&statename=%s&callback=objIFSC.districtDataRender' % (bank_name, state))
    res_district = res_district.text
    district = re.findall(district_value, res_district)[0]
    # print('district:' , district)
    
    ## 获取 branch, 选择其一
    res_branch = requests.get('https://mfapps.indiatimes.com/ET_Calculators/branchList.htm?bankname=%s&statename=%s&districtname=%s&callback=objIFSC.branchDataRender' % (bank_name, state, district))
    res_branch = res_branch.text
    branch = re.findall(branch_value, res_branch)[0]
    # print('branch:' , branch)

    ## 获取ifsc
    res_ifsc = requests.get('https://mfapps.indiatimes.com/ET_Calculators/bankDetails.htm?bankname=%s&statename=%s&districtname=%s&branchname=%s&callback=objIFSC.getIfscData' % (bank_name, state, district, branch))
    res_ifsc = res_ifsc.text
    ifsc = re.findall(ifsc_value, res_ifsc)[0]
    # print(ifsc)

    # 银行name
    worksheet.write(r, 0, bank_name.upper().replace("-", " "))
    # 银行ifsc 前4位
    worksheet.write(r, 1, ifsc[0:4])
    r = r + 1

workbook.close()

大约拉取时长十分钟左右,请耐心等待···

生成xlsx: 总条数186
xlsx

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
4.4.1 接口说明 请求头 请求头说明 沙箱环境url https://api.sandbox.speedlyglobal.com/api/settle/settlement 生产环境url https://api.speedlyglobal.com/api/settle/settlement 请求方式 POST 4.4.2 传参说明 参数名称 类型 是否必填 描述 merchant_no String 是 商户号 data object 是 订单数据体 data: 参数名称 类型 是否 必填 是否 签名 描述 country String 是 是 国家代码。详见:国家和货币代码 currency String 是 是 货币代码。详见:国家和货币代码 order_id String 是 是 商户订单编号 amount Double 是 是 固定2位小数点的浮点数金额,如:10.00 notification_url String 是 是 回调通知地址。支付成功后,向商户发送成功的回调通知 timestamp Long 是 是 毫秒级UTC时间戳(13位) signature String 是 否 MD5签名,32位大写字母 payee object 否 否 收款方信息体 payee: 参数名称 类型 是否必填 描述 name String 是 收款方名字 lastname String 否 收款方姓氏 account String 是 收款方账号 account_type String 是 账户类型,详见:支持账户类型 document String 否 收款方个人公民身份ID,详见:身份ID格式 phone String 否 收款方电话号码,详见:电话号码格式 马来西亚必填 印度必填 email String 否 邮箱 马来西亚必填 印度必填 bank_name String 否 银行名称 bank_code String 否 银行编码 马来西亚必填 bank_branch String 否 银行支行 印度 account_type=BANK时,传印度银行IFSC号码 国家名称 payee详细描述 巴西 account_type=CPF时,document必填,account=document,[document]传巴西的CPF号 account_type=PHONE时,phone必填,account=phone account_type=EMAIL时,email必填,account=email account_type=CHAVE时,[account]传巴西的PIX密钥 例如: { "name":"Miscro Duma", "account":"+552125552787", "account_type":"PHONE", "phone":"+552125552787" } 根据以上信息 生成一个基于php的接口案例
06-10

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值