2016-4-25-反爬與小思考

今天主要講講最近碰到的那個(gè)反爬網(wǎng)站挨约,我當(dāng)時(shí)的心情真的是:

日了狗了.png

讓我們來回顧一下我們和這群正在招月薪3w反爬工程師網(wǎng)站的斗智斗勇叉橱。胖烛。眼姐。

事情是這樣的诅迷,首先我們開了個(gè)大創(chuàng)項(xiàng)目,正好老師底下有個(gè)學(xué)生做畢設(shè)是做股權(quán)分析的众旗,于是就順帶把我們現(xiàn)在做的這個(gè)大創(chuàng)項(xiàng)目就弄的和學(xué)長做同一個(gè)方向了:目標(biāo)主要是爬取網(wǎng)站得到所有A股上市公司的股權(quán)信息竟贯。

當(dāng)時(shí)我們心情是:

美滋滋

組里兩個(gè)人都寫過scrapy的爬蟲, 什么大風(fēng)大浪沒見過對吧(開個(gè)玩笑)

不過這學(xué)長是真坑啊逝钥,連著那網(wǎng)站也坑屑那,兩坑加一起....

首先學(xué)長都沒說具體到底要爬哪些公司(一開始都不知道是A股),一看到那網(wǎng)站艘款,我們就懵逼了:

天眼查網(wǎng)站:

天眼查

這東西只能搜索然后查找啊持际, 這..這..這...何從爬起啊哗咆?它根本都沒提供一個(gè)所有公司的展示界面爸┯?晌柬?姥份?

黑人問號

我們隨意搜了搜,看能不能找到全部公司:

公司

哼哼看來人家又不傻....

緊接著看到了這個(gè):

會(huì)員服務(wù)

當(dāng)時(shí)就懵逼了...這要是我們真有能力把它所有的公司都抓下來年碘,這個(gè)網(wǎng)站不就倒閉了...還搞個(gè)啥會(huì)員服務(wù)呢澈歉??S煨啤埃难!

果不其然,一位同學(xué)搜了搜招聘網(wǎng)站:

反爬工程師

當(dāng)時(shí)心里頭萬頭草泥馬奔涌而過啊...這我們拿著5000塊錢的資金涤久,去跟一個(gè)企業(yè)一群月薪3W 的反爬工程師做斗爭呢涡尘?這還玩毛啊...還拖人家數(shù)據(jù)庫,到時(shí)候會(huì)不會(huì)人家把你舉報(bào)了都不知道响迂,算了算了考抄,當(dāng)時(shí)想著學(xué)長這畢設(shè)估計(jì)要 gg了...

但是沒辦法,該爬還得爬蔗彤,怎么爬呢川梅?我們準(zhǔn)備細(xì)心觀察每個(gè)企業(yè)的url結(jié)構(gòu):
結(jié)果是:
根本沒有任何規(guī)律
百度的url:http://www.tianyancha.com/company/22822
但是 http://www.tianyancha.com/company/22823 就沒有任何企業(yè)是這個(gè)url。

說明一堆堆的企業(yè)好像被隨機(jī)分派在了0-100000000000(11個(gè)0)的范圍內(nèi)..

胖哥一聲令下:這還不簡單幕与,遍歷下就好了(單純的我們大概根本沒有這個(gè)概念:想把一個(gè)幾百十號人靠這個(gè)吃飯的數(shù)據(jù)庫拖下來哪能是我們?nèi)齻€(gè)單純的大三生能干的挑势。。)

看了下網(wǎng)站結(jié)構(gòu)啦鸣,得開啟selenium+phantomjs神器潮饱,于是,就開始愉快地爬取啦=敫香拉!

爬取的是很愉快啦扬,但是速度感人呀:
算了算,如果碰到url找不到企業(yè)凫碌,大概是1秒1個(gè)扑毡,如果url找得到企業(yè),抓取信息下來大概是5秒一個(gè)盛险,機(jī)智的我按了下計(jì)算器:

100000000000/3600/24/365 = 3000左右

臥槽瞄摊,我們在一切順利的情況下只需要爬3000年就可以爬完哦!?嗑颉;恢摹!3000年爬完哦:追取9咄铡!爬5莨濉祟牲!完!抖部!哦K当础!您朽!

= =

哇說不定我們開多個(gè)進(jìn)程狂丝,再搞個(gè)分布式可以縮短到100年呢换淆,真是美滋滋...

而且“高興”到一半哗总,突然爬蟲GG了。倍试。讯屈。

出現(xiàn)了圖片拖動(dòng)驗(yàn)證碼...

爬了十幾個(gè),就出現(xiàn)了圖片?驗(yàn)證?碼?

機(jī)智的胖哥立馬搜了搜相關(guān)方案:大致解決方法是模擬鼠標(biāo)去把那個(gè)圖片拖動(dòng)到合適位置(一句話就講完了看起來很簡單的樣子)然后看了看那幾百行的代碼我們決定:!放棄!...

于是我們決定利用ip池來進(jìn)行爬取:隨便google了一下就找到了幾百個(gè)免費(fèi)的代理ip,方便的很.發(fā)現(xiàn)換了ip之后,終于可以跳過驗(yàn)證碼的驗(yàn)證界面了...松了一口氣,也就在這時(shí),學(xué)長跟我們說,不用爬全部啊,主需要爬A股,讓我們的信心都為之一振!!

說做就做,于是我們又開始嗖嗖嗖地爬取:首先在網(wǎng)上得到A股名單,然后在天眼查搜索企業(yè),然后點(diǎn)擊進(jìn)去進(jìn)入該公司網(wǎng)站,然后開始爬取!!
一切很順利,直到............

我們發(fā)現(xiàn),爬下來,確實(shí)是沒什么問題,但是....這數(shù)據(jù)特么是個(gè)假的!!!假...的....假...的....

如下是爬到假數(shù)據(jù)的代碼:

#!/usr/bin/python
# -*- coding: UTF-8 -*-

import time
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities


dcap = dict(DesiredCapabilities.PHANTOMJS)  # 設(shè)置userAgent
dcap["phantomjs.page.settings.userAgent"] = ("Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20130406 Firefox/23.0")

obj = webdriver.PhantomJS(executable_path=r"/home/jack/Downloads/App/phantomjs-2.1.1-linux-x86_64/bin/phantomjs", desired_capabilities=dcap)
obj.get('http://www.tianyancha.com/company/22822')
time.sleep(3)
print obj.page_source

來我們來看看原網(wǎng)站:

原網(wǎng)站

來我們來看看我們爬到了些啥:
工商注冊號:440104113453756(這特么什么鬼)
行業(yè):消防(我要砸桌子了)
....

以下不列舉了...

假的

我當(dāng)時(shí)只想:

報(bào)警

這還玩?zhèn)€蛇皮...

大家開始到網(wǎng)上搜尋解決方案, 我也趕緊問了問最近在知乎上捉到的@waking_up 一個(gè)自稱小白的大神, 結(jié)果三個(gè)人都無果而終....好像剩下的方法就只能試試抓包?

終于學(xué)長在此時(shí)沒坑,給出了一波給你的助攻:換瀏覽器ua:

果然,在換取瀏覽器ua之后,千辛萬苦我們終于可以爬到了真實(shí)數(shù)據(jù)!!

簡直要喜極而泣..

然而...

我們發(fā)現(xiàn),當(dāng)我們直接訪問例如:http://www.tianyancha.com/company/22822 網(wǎng)站時(shí), 給的是真實(shí)的數(shù)據(jù).然而,當(dāng)我們?yōu)榱伺炕幚? 是這樣的處理的:首先從網(wǎng)上獲取所有A股名單, 比如我們找到了百度, 然后我們在主頁利用webdriver模仿用戶行為:

主頁

搜索百度:

然后模仿用戶行為,點(diǎn)擊第一個(gè)鏈接:

百度

之后,我們又GET了數(shù)據(jù)!!!假!!數(shù)!!據(jù)!!!

此時(shí)內(nèi)心是崩潰的....

好氣啊,想砸桌子...

此時(shí)又發(fā)現(xiàn)消息: 學(xué)長給的A股信息是假的,假的還不說了,一些簡稱在天眼查底下根本搜不到(比如"ST東北高")...

假的

意思是即便我們用了合適的ua頭,但是只要利用phantomjs模仿用戶行為,比如點(diǎn)擊什么的,就會(huì)被偵測到!

無可奈何....

沒辦法本來也只是想把爬蟲作為工具,并不是什么以后想要專門搞這個(gè)的,WEB基礎(chǔ)也不夠,就沒打算深究機(jī)理了....(也深刻感覺到了時(shí)間有限, 應(yīng)該把時(shí)間放在自己的那個(gè)方向上,其他只是作為工具而已,能利用就利用)

于是我重新google了下企業(yè)A股名單,然后發(fā)現(xiàn)雖然可能有些簡稱搜不到,但是企業(yè)的編號是可以搜到的.在天眼查里搜編號就好了..

然后我們換用了移動(dòng)端的表頭:
驚喜地發(fā)現(xiàn)(終于這一次是驚喜了):移動(dòng)端沒有任何反爬措施,連驗(yàn)證碼都沒有!!!

所以也提個(gè)醒吧,如果發(fā)現(xiàn)WEB太難啃的話,直接把ua頭換移動(dòng)端就好了..

好了這是倒今天為止的進(jìn)度,具體項(xiàng)目完工后會(huì)寫一篇正式的稿子的,這里只是記錄一下辛酸史= =真是心累啊.....不過也很佩服, 反爬與反反爬的過程還是很有趣的,仿佛是在斗智斗勇2333

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市县习,隨后出現(xiàn)的幾起案子涮母,更是在濱河造成了極大的恐慌,老刑警劉巖躁愿,帶你破解...
    沈念sama閱讀 212,542評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件叛本,死亡現(xiàn)場離奇詭異,居然都是意外死亡彤钟,警方通過查閱死者的電腦和手機(jī)来候,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,596評論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來逸雹,“玉大人营搅,你說我怎么就攤上這事云挟。” “怎么了转质?”我有些...
    開封第一講書人閱讀 158,021評論 0 348
  • 文/不壞的土叔 我叫張陵园欣,是天一觀的道長。 經(jīng)常有香客問我休蟹,道長沸枯,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,682評論 1 284
  • 正文 為了忘掉前任赂弓,我火速辦了婚禮辉饱,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘拣展。我一直安慰自己彭沼,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,792評論 6 386
  • 文/花漫 我一把揭開白布备埃。 她就那樣靜靜地躺著姓惑,像睡著了一般。 火紅的嫁衣襯著肌膚如雪按脚。 梳的紋絲不亂的頭發(fā)上于毙,一...
    開封第一講書人閱讀 49,985評論 1 291
  • 那天,我揣著相機(jī)與錄音辅搬,去河邊找鬼唯沮。 笑死,一個(gè)胖子當(dāng)著我的面吹牛堪遂,可吹牛的內(nèi)容都是我干的介蛉。 我是一名探鬼主播,決...
    沈念sama閱讀 39,107評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼溶褪,長吁一口氣:“原來是場噩夢啊……” “哼币旧!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起猿妈,我...
    開封第一講書人閱讀 37,845評論 0 268
  • 序言:老撾萬榮一對情侶失蹤吹菱,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后彭则,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體鳍刷,經(jīng)...
    沈念sama閱讀 44,299評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,612評論 2 327
  • 正文 我和宋清朗相戀三年俯抖,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了输瓜。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,747評論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖前痘,靈堂內(nèi)的尸體忽然破棺而出凛捏,到底是詐尸還是另有隱情,我是刑警寧澤芹缔,帶...
    沈念sama閱讀 34,441評論 4 333
  • 正文 年R本政府宣布坯癣,位于F島的核電站,受9級特大地震影響最欠,放射性物質(zhì)發(fā)生泄漏示罗。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,072評論 3 317
  • 文/蒙蒙 一芝硬、第九天 我趴在偏房一處隱蔽的房頂上張望蚜点。 院中可真熱鬧,春花似錦拌阴、人聲如沸绍绘。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,828評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽陪拘。三九已至,卻和暖如春纤壁,著一層夾襖步出監(jiān)牢的瞬間左刽,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,069評論 1 267
  • 我被黑心中介騙來泰國打工酌媒, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留欠痴,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,545評論 2 362
  • 正文 我出身青樓秒咨,卻偏偏與公主長得像喇辽,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子拭荤,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,658評論 2 350

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

  • 起來越有秋天的味道了茵臭。涼風(fēng)習(xí)習(xí),吹得讓人舒服快活舅世。我很喜歡很享受這種感覺,清風(fēng)拂面奇徒,吹走了所有的不悅與疲憊雏亚,讓人全...
    流浪癡人閱讀 261評論 2 1
  • 婆娑小雨漫起層層輕霧,烏衣巷半隱半現(xiàn)在雨紗里摩钙,安靜罢低、溫柔。 夕陽在巷口灑下點(diǎn)點(diǎn)余暉,金色的粉便涂刷了整個(gè)世界网持,鋪天...
    陸星淵閱讀 443評論 6 6
  • 公交車上的人們有幾個(gè)類型: 急性子的人們宜岛。 司機(jī)是個(gè)急性子,到站開門投幣的瞬間功舀,只聽見公交司機(jī)大哥喊萍倡,快點(diǎn)快點(diǎn),還...
    筆尖兒愛寫作閱讀 533評論 2 5
  • 越是沒錢的人越不在乎錢辟汰,越有錢的人反而更珍惜錢 這句話打到我了列敲,想想我長久以來的投資觀,都是有極大問題的 拿15年...
    張學(xué)安閱讀 190評論 0 0