數據來源: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