数据来源: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