自動(dòng)查企業(yè)工商登記信息(企業(yè)信用信息公示系統(tǒng)蜗侈、極驗(yàn)Geetest與Python爬蟲)

一、引言:

信貸作業(yè)的過程就是信息搜集和驗(yàn)證的過程睡蟋。對(duì)于企業(yè)客戶踏幻,最權(quán)威的信息渠道莫過于工商登記信息,各種第三方查詢工具(天眼查戳杀、啟信寶该面、各種各樣的API等等)也來源于此夭苗。

常見的問題在于,我們不僅要查借款人吆倦,還要查其法人股東(不斷追溯)听诸,下屬企業(yè),以及擔(dān)保企業(yè)蚕泽、上下游主要交易對(duì)手等等晌梨。這樣,調(diào)查一個(gè)客戶往往要查詢七八戶企業(yè)须妻。如何高效仔蝌、自動(dòng)完成查詢?如何在查詢的同時(shí)規(guī)范化存儲(chǔ)荒吏、整理各種信息(而不是胡亂地復(fù)制粘貼)敛惊?這是本文試圖解決的問題。

======================================================================

注意:這里僅為本人信貸工作學(xué)習(xí)之心得绰更,切勿轉(zhuǎn)載瞧挤,或用于采集他人信息使用,惡意采集他人信息要承擔(dān)刑事責(zé)任儡湾。

======================================================================

二特恬、信貸理論基礎(chǔ):

對(duì)于一個(gè)企業(yè)信貸客戶,要查哪些相關(guān)企業(yè)徐钠?參考下面的內(nèi)容:

H Howard:銀行信貸中的「穿透原則」是什么癌刽?如何理解?

H Howard:《商業(yè)銀行集團(tuán)客戶授信業(yè)務(wù)風(fēng)險(xiǎn)管理指引》中的「集團(tuán)客戶」如何理解尝丐,能否舉例說明显拜?

三、網(wǎng)站分析

(一)我們先看手工查詢流程

打開主頁國(guó)家企業(yè)信用信息公示系統(tǒng)

2爹袁、錄入關(guān)鍵詞查詢远荠,這時(shí)候會(huì)跳出驗(yàn)證碼(大名鼎鼎的geetest)

拖動(dòng)滑塊

看到查詢結(jié)果50條

點(diǎn)開第一條,能看到基本信息失息,點(diǎn)擊不同欄目矮台,可以看到更多信息

點(diǎn)擊右上角信息打印,再次跳出驗(yàn)證碼

滑動(dòng)滑塊根时,打印報(bào)告

信息非常詳盡

(二)技術(shù)要點(diǎn)

1瘦赫、第一步,錄入主頁蛤迎,返回兩個(gè)參數(shù)gt,challenge

gt是固定的,challenge會(huì)變化

有了兩個(gè)參數(shù)确虱,就可以獲取驗(yàn)證碼

bg,fullbg代表有缺口和沒缺口的背景圖地址,slice代表缺塊圖地址

下面就是背景圖

當(dāng)然替裆,圖片經(jīng)過了混淆處理校辩,需要重新拼圖

鼠標(biāo)拖動(dòng)驗(yàn)證碼的過程窘问,實(shí)際上是向網(wǎng)站提交了一串參數(shù),而網(wǎng)站通過校驗(yàn)參數(shù)來判斷查詢者是人類還是機(jī)器人宜咒。

提交的參數(shù)中惠赫,gt、challenge已知故黑,userresponse儿咱、passtime、a不知道如何來的场晶,我們搜索發(fā)現(xiàn)在js文件中出現(xiàn)過(文件版本會(huì)不斷更新)混埠。

打開js文件:

格式化

找到userresponse、passtime诗轻、a的出處:

var p = {

gt:a.config.gt,

challenge: a.config.challenge,

userresponse: ca.ra(l, a.config.challenge),

passtime: Q.t("endTime",a.id).getTime() - Q.t("startTime",a.id),

imgload: Q.t("imgload",a.id),

a: encodeURIComponent(n)

};

要計(jì)算userresponse钳宪,需要ca.ra,那就繼續(xù)找:

ca.ra = function(a, b) {

for (var c = b.slice(32), d = [], e = 0; e < c.length; e++) {

var f = c.charCodeAt(e);

d[e] = f > 57 ? f - 87 : f - 48

}

c = 36 * d[0] + d[1];

var g = Math.round(a) + c;

b = b.slice(0, 32);

var h, i = [[], [], [], [], []],

j = {},

k = 0;

e = 0;

for (var l = b.length; e < l; e++) h = b.charAt(e),

j[h] || (j[h] = 1, i[k].push(h), k++, k = 5 == k ? 0 : k);

for (var m, n = g,

o = 4,

p = "",

q = [1, 2, 5, 10, 50]; n > 0;) n - q[o] >= 0 ? (m = parseInt(Math.random() * i[o].length, 10), p += i[o][m], n -= q[o]) : (i.splice(o, 1), q.splice(o, 1), o -= 1);

return p

};

以此類推扳炬,需要什么找什么吏颖,最后找到參數(shù)的計(jì)算方法。

最終發(fā)現(xiàn)恨樟,計(jì)算參數(shù)需要一串?dāng)?shù)據(jù)半醉,那就是滑塊拖動(dòng)形成的鼠標(biāo)軌跡,不同人拖動(dòng)厌杜,形成不同的軌跡,計(jì)算的到不同的參數(shù)值计螺,服務(wù)器判斷參數(shù)值是否合法夯尽,進(jìn)而能否通過驗(yàn)證碼。

勻速運(yùn)動(dòng)登馒,過快拖動(dòng)匙握,一次到位的拖動(dòng),都會(huì)被認(rèn)為是機(jī)器人陈轿,出現(xiàn)forbidden圈纺。

關(guān)于這套驗(yàn)證碼系統(tǒng),可以看官方介紹

產(chǎn)品特性-安全進(jìn)化麦射、體驗(yàn)優(yōu)化蛾娶、管理輕化的驗(yàn)證碼

極驗(yàn)(geetest)是顛覆傳統(tǒng)字符驗(yàn)證碼的的新一代基于行為式驗(yàn)證安全技術(shù)的驗(yàn)證碼

什么是基于行為呢?想想《碟中諜5》中吊炸天的門禁黑科技

簡(jiǎn)而言之:既要拖到位潜秋,又不能過于準(zhǔn)確蛔琅。

兩種思路,一種是笨辦法峻呛,大量采集人類拖動(dòng)形成軌跡庫罗售,直接調(diào)用辜窑;另一種思路是尋找人類拖動(dòng)的規(guī)律,運(yùn)用函數(shù)去模擬寨躁。

看一個(gè)采集到的鼠標(biāo)軌跡:

{-18,-18,0};{0,0,0};{2,0,273};{3,0,288};{4,0,295};{5,0,304};{6,0,343};{7,0,352};{8,0,367};{9,0,383};{10,0,399};{11,0,408};{12,0,423};{13,0,439};{14,0,456};{15,0,479};{16,0,488};{17,0,505};{18,0,528};{19,-1,536};{20,-1,543};{21,-2,552};{22,-2,575};{23,-2,584};{25,-2,600};{26,-2,615};{27,-2,631};{28,-2,655};{29,-2,663};{30,-2,672};{31,-2,695};{32,-2,711};{33,-2,735};{34,-2,752};{35,-2,767};{36,-2,775};{37,-2,792};{38,-2,817};{39,-2,839};{40,-2,895};{41,-2,911};{42,-2,919};{43,-2,952};{44,-2,976};{45,-2,999};{46,-2,1039};{47,-2,1055};{48,-2,1072};{49,-2,1113};{50,-2,1135};{51,-2,1160};{52,-2,1192};{53,-2,1239};{53,-2,1376};

第一個(gè)點(diǎn)穆碎,{-18,-18,0}是代表鼠標(biāo)起始位置(在滑塊左邊),然后是鼠標(biāo)移動(dòng)到滑塊最左端{(lán)0,0,0}职恳,開始向右拖動(dòng){3,0,288}所禀,最后移動(dòng)到{53,-2,1376}完成。

軌跡節(jié)點(diǎn)[53,-2,1376]话肖,53表示水平移動(dòng)的位置北秽,正數(shù)代表向右移動(dòng),負(fù)數(shù)代表向左移動(dòng)最筒; -2表示鼠標(biāo)上下偏移(一般為零贺氓,比如手抖了,就有正負(fù))床蜘;1376表示耗用時(shí)間辙培。

人類拖動(dòng)的一般規(guī)律:首先是鼠標(biāo)移動(dòng)到滑塊上,慢慢拖邢锯,由慢到快扬蕊,到了結(jié)束時(shí)慢慢調(diào)整,直至對(duì)齊丹擎。所以勻速運(yùn)動(dòng)肯定被判定為機(jī)器人尾抑。

找到規(guī)律后,可以用一些函數(shù)模擬這種“慢-快-慢”的節(jié)奏蒂培,比如tanh或者常用神經(jīng)網(wǎng)絡(luò)的sigmoid函數(shù)再愈。

當(dāng)然,函數(shù)還需要增加隨機(jī)數(shù)护戳。一般來說翎冲,沒必要追求100%的通過率,能到80%就可以用了媳荒。

畢竟涉及到商業(yè)抗悍,這能寫到這樣了,再細(xì)就是代碼了钳枕。

過了驗(yàn)證碼以后缴渊,我們拿到了關(guān)鍵參數(shù)geetest_validate,再次提交查詢

可以在網(wǎng)頁源代碼中看到基本信息了

查詢結(jié)果很多條鱼炒,我們要拿到每一條的詳細(xì)頁面網(wǎng)址

以該網(wǎng)址疟暖,再次查詢,無需任何參數(shù),直接Get

拿到基本信息

其中俐巴,找打打印對(duì)應(yīng)的網(wǎng)址

再過一次驗(yàn)證碼骨望,拿到了關(guān)鍵參數(shù)geetest_validate,再次提交查詢

拿到了詳細(xì)報(bào)告的所有信息

至此欣舵,下一步就是寫正則表達(dá)式擎鸠,將網(wǎng)頁數(shù)據(jù)以規(guī)范的形式保存起來。撰寫信貸調(diào)查報(bào)告缘圈、審查報(bào)告的時(shí)候劣光,直接引用數(shù)據(jù),或者可以自動(dòng)生成調(diào)查報(bào)告糟把,省去了復(fù)制粘貼的過程绢涡。

四、自動(dòng)查詢工具

用python實(shí)現(xiàn)遣疯,兩種思路雄可,一種是selenium+phantomjs,優(yōu)點(diǎn)是上手快缠犀,缺點(diǎn)是難以達(dá)到工業(yè)級(jí)運(yùn)用数苫,另一種要讀js文件,自己寫計(jì)算函數(shù)辨液。用到的庫虐急,PIL、requests滔迈、lxml止吁。

看下效果:

主要信息有了,有些亂燎悍,尚未整理敬惦。

關(guān)于信息整理,正則表達(dá)式间涵,以及Txt,Word,Excel之間的自由轉(zhuǎn)換仁热,數(shù)據(jù)分析榜揖、商務(wù)圖表勾哩、盡調(diào)報(bào)告自動(dòng)生成等等門面功夫(形式主義的學(xué)問)之類的,下次再介紹吧举哟。

工具能用多久思劳?js文件版本一旦更新(或切換驗(yàn)證碼系統(tǒng)),工具也需要更新妨猩,不然就掛了潜叛。當(dāng)然,這僅用于個(gè)人提升工作效率使用,一次查詢十來個(gè)尚可威兜,大規(guī)模采集信息肯定會(huì)遇到各種封殺销斟。

驗(yàn)證碼系統(tǒng)和信貸風(fēng)控(特別是反欺詐)有相同之處,都是分類問題椒舵,驗(yàn)證碼是區(qū)分人類或機(jī)器蚂踊,風(fēng)控是區(qū)分好客戶與壞客戶,既要讓好客戶感到不麻煩笔宿,又要讓壞客戶進(jìn)不來犁钟,風(fēng)控太嚴(yán)格,往往誤傷好客戶泼橘,這就是矛盾涝动。我們現(xiàn)在強(qiáng)調(diào)科技金融,言必談大數(shù)據(jù)炬灭、機(jī)器學(xué)習(xí)醋粟、數(shù)據(jù)挖掘、各種風(fēng)控黑科技担败,似乎科技可以解決所有問題昔穴。然而,正如武器專家Q為007精心打造的古靈精怪的武器裝備并不能代替007去自動(dòng)完成任務(wù)提前,工具可以幫助007找到對(duì)手吗货,電影總是以007與敵人首腦之間的的肉搏結(jié)局。再?gòu)?qiáng)大的風(fēng)控體系都離不開人的作用狈网。也沒有什么一勞永逸的“工具”宙搬,風(fēng)控就是人與人的博弈。

五拓哺、信息分析

查詢了這些信息勇垛,如何分析?有時(shí)候走得太遠(yuǎn)士鸥,反而忘記了為什么出發(fā)闲孤,總想爬更多的信息(陷入各種科技坑),其實(shí)拿到信息只是最簡(jiǎn)單的一步烤礁。如何透過各種或真或假的信息挖掘企業(yè)的信用與經(jīng)營(yíng)狀況讼积?名稱、地址脚仔、注冊(cè)資本勤众、法定代表人什么法律含義?各種變更有什么潛在的意圖鲤脏?如何挖掘企業(yè)的實(shí)際控制人们颜?如何判斷實(shí)際控制人的所思所想吕朵?這才是真正的難題。

…更多文章請(qǐng)到信貸風(fēng)控手記-知乎專欄

…更多回答請(qǐng)看H-Howard

H Howard:在銀行從事風(fēng)險(xiǎn)管理是什么樣的體驗(yàn)窥突?

H Howard:為什么因?yàn)榇尕浄e壓會(huì)導(dǎo)致當(dāng)期毛利率的提高努溃?

H Howard:國(guó)內(nèi)汽車金融的現(xiàn)狀和前景是怎樣的?

H Howard:在一筆貸款審批中阻问,有什么措施能在不變更審批條件下茅坛,可以不提供資料就判斷客戶的資質(zhì)呢?

H Howard:在消費(fèi)金融公司工作是一種什么樣的體驗(yàn)则拷?

H Howard:非金融出身的風(fēng)險(xiǎn)控制應(yīng)該學(xué)哪些方面的專業(yè)知識(shí)贡蓖?

H Howard:財(cái)務(wù)報(bào)表分析具體怎么做?

H Howard:信貸的全流程是怎么做的煌茬?是否有可能做到較高的自動(dòng)化斥铺?

最近寫了本小書,歡迎購(gòu)買

圖片發(fā)自簡(jiǎn)書App
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末坛善,一起剝皮案震驚了整個(gè)濱河市晾蜘,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌眠屎,老刑警劉巖剔交,帶你破解...
    沈念sama閱讀 218,682評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異改衩,居然都是意外死亡岖常,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,277評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門葫督,熙熙樓的掌柜王于貴愁眉苦臉地迎上來竭鞍,“玉大人,你說我怎么就攤上這事橄镜≠丝欤” “怎么了?”我有些...
    開封第一講書人閱讀 165,083評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵洽胶,是天一觀的道長(zhǎng)晒夹。 經(jīng)常有香客問我,道長(zhǎng)姊氓,這世上最難降的妖魔是什么丐怯? 我笑而不...
    開封第一講書人閱讀 58,763評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮他膳,結(jié)果婚禮上响逢,老公的妹妹穿的比我還像新娘绒窑。我一直安慰自己棕孙,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,785評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著蟀俊,像睡著了一般钦铺。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上肢预,一...
    開封第一講書人閱讀 51,624評(píng)論 1 305
  • 那天矛洞,我揣著相機(jī)與錄音,去河邊找鬼烫映。 笑死沼本,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的锭沟。 我是一名探鬼主播抽兆,決...
    沈念sama閱讀 40,358評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼族淮!你這毒婦竟也來了辫红?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,261評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤祝辣,失蹤者是張志新(化名)和其女友劉穎贴妻,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蝙斜,經(jīng)...
    沈念sama閱讀 45,722評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡名惩,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了孕荠。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片绢片。...
    茶點(diǎn)故事閱讀 40,030評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖岛琼,靈堂內(nèi)的尸體忽然破棺而出底循,到底是詐尸還是另有隱情,我是刑警寧澤槐瑞,帶...
    沈念sama閱讀 35,737評(píng)論 5 346
  • 正文 年R本政府宣布熙涤,位于F島的核電站,受9級(jí)特大地震影響困檩,放射性物質(zhì)發(fā)生泄漏祠挫。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,360評(píng)論 3 330
  • 文/蒙蒙 一悼沿、第九天 我趴在偏房一處隱蔽的房頂上張望等舔。 院中可真熱鬧,春花似錦糟趾、人聲如沸慌植。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,941評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蝶柿。三九已至丈钙,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間交汤,已是汗流浹背雏赦。 一陣腳步聲響...
    開封第一講書人閱讀 33,057評(píng)論 1 270
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留芙扎,地道東北人星岗。 一個(gè)月前我還...
    沈念sama閱讀 48,237評(píng)論 3 371
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像戒洼,于是被迫代替她去往敵國(guó)和親伍茄。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,976評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 國(guó)家電網(wǎng)公司企業(yè)標(biāo)準(zhǔn)(Q/GDW)- 面向?qū)ο蟮挠秒娦畔?shù)據(jù)交換協(xié)議 - 報(bào)批稿:20170802 前言: 排版 ...
    庭說閱讀 10,983評(píng)論 6 13
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理施逾,服務(wù)發(fā)現(xiàn)敷矫,斷路器,智...
    卡卡羅2017閱讀 134,659評(píng)論 18 139
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,161評(píng)論 25 707
  • 這是一個(gè)關(guān)于我的奇葩舍友的故事完整故事請(qǐng)查看目錄 不知道從什么時(shí)候開始汉额,北京的賣唱隊(duì)伍里注入了一脈新鮮的血液曹仗。 他...
    孤葉南飛閱讀 16,900評(píng)論 14 4
  • 這是陽陽的第24幅作品,對(duì)數(shù)學(xué)圖形部分進(jìn)行了分析蠕搜。中心圖主要由三角形怎茫、平四邊形組成。三個(gè)分支分別為平行四邊形妓灌,三角...
    民大鐵老師閱讀 345評(píng)論 5 0