❶ 鎬庝箞鏌ョ湅鎼滅儲銍樿洓鎬庝箞鏌ョ湅鎼滅儲銍樿洓鐨勮板綍
linuxNGX濡備綍鏌ョ湅鎼滅儲寮曟搸銍樿洓鐖鉶鐨勮岋紵
1銆傜櫨搴﹁湗錏涙姄鍙栫殑嬈℃暟銆cataccess.loggrepBaispiderWC
宸﹁竟鐨勬暟瀛楁樉紺虹殑鏄鎶撳彇鐨勬℃暟銆
2.鐧懼害銍樿洓璇︾粏璁板綍(CtrlC鍙浠ョ粓姝)
cataccess.loggrepBaispider
鎮ㄤ篃鍙浠ヤ嬌鐢ㄤ互涓嬪懡浠:
cataccess.loggrepBaispidertail-n10
cataccess.loggrepBaispiderhead-n10
鍙鏌ョ湅鏈鍚10涓鎴栧墠10涓錛岃繖鏍峰氨鍙浠ョ煡閬撹繖涓鏃ュ織鏂囦歡寮濮嬭板綍鐨勬椂闂村拰鏃ユ湡銆
3.鐧懼害銍樿洓鎶撳彇棣栭〉鐨勮︾粏璁板綍
cataccess.loggrepBaispidergrep"GET/HTTP"
鐧懼害銍樿洓浼間箮寰堢埍涓婚〉錛屾瘡涓灝忔椂閮芥潵璁塊棶錛岃岃胺姝屽拰闆呰檸銍樿洓鏇村枩嬈㈠唴欏點
4.鐧懼害銍樿洓媧炬ц板綍鐨勬椂闂村垎甯冦
cataccess.loggrep"Baispider"awk'{print$4}
5.鐧懼害銍樿洓鎶撳彇欏甸潰鎸夋椂闂撮檷搴忔帓鍒椼
cataccess.loggrep"Baispider"awk'{print$7}鎺掑簭uniq-c鎺掑簭-r
鎶夿aispider鏀規垚Googlebot灝卞彲浠ユ煡鐪婫oogle鐨勬暟鎹浜嗐傞壌浜庡唴鍦扮殑鐗規畩鎬э紝澶у惰佸氬叧娉ㄧ櫨搴︾殑鏃ュ織銆
闄:(濯掍綋鍚堜綔浼欎即-Google)GoogleAdsense銍樿洓璇︾粏鎶撳彇璁板綍
cataccess.loggrepmediapartners
涓嶄竴浼氶偅鍙銍樿洓灝辯埇鍒板簥搴曚簡錛屾垜璇ユ庝箞鍔炲憖錛屾垜鏈鎬曡湗錏涗簡錛
鎴戜篃寰堟曡湗錏涜繖鏍風殑鏄嗚櫕錛屽挨鍏舵槸寰堝氱殑鏃跺欍傛垜浠庣綉涓婃悳浜嗕竴孌墊垜璁や負鍙琛岀殑鏂規堬紝閫佺粰浣狅細
濡傛灉鏄鎴塊棿閲屾湁銍樿洓錛屾埧闂磋佹潵涓嬈″ぇ鎵闄ゃ傚傛灉灞嬭掓湁緇撶綉鍙鐢ㄦ壂甯氭悶鎺夛紝鍠峰皯璁擱浄杈炬垨鏄鐏瀹崇伒絳夌殑鍠烽浘寮忔潃鉶鍓備互渚垮幓闄よ櫕鍗碉紱娓呮壂澧欒掞紝澧欒掑湴闈㈠柗媧掑皯璁84娑堟瘨娑叉垨鏄鐢ㄦ嫋鎶婃簿紼閲婅繃鐨84娑堟瘨娑叉竻鐞嗕竴涓嬪湴闈銆傛や婦涓瀹氳ょ湡鎵ц岋紝84娑堟瘨娑插逛簬鍚勭被瀹跺眳鉶鉶鍙浠ヨ搗鍒伴暱鏈熸姂姝浣滅敤銆傛敞鎰84娑堟瘨娑茬殑紼閲婃瘮渚嬶紝鍙鍦ㄥ崐妗舵按涓灝戦噺鍒嗘℃參鎱㈡坊鍔狅紝浠ュ埡嬋鎬ф皵鍛充笉瑕佸お閲嶄負瀹滐紝寰呭湴闈㈡按娓嶈捀鍙戝畬姣曡板緱寮紿楁崲姘斻傚簥搴曟澘涓婂傛湁銍樿洓澶勭悊鏂規硶鍚屽眿瑙掞紝鍑夋檼鑷宸辯殑琚瑜ワ紝璐涔版熻剳鐞冪疆浜庤。鏌滅瓑闅愮樼殑鍌ㄧ墿絀洪棿鍐咃紝浠ヤ究椹辮刀鉶瀹熾
濡備綍鍚稿紩鎼滅儲寮曟搸銍樿洓鎶撳彇鎴戜滑鐨勭綉絝檁錛
鍋氱綉絝欎紭鍖栫殑鐨勭洰鐨勶紝灝辨槸涓轟簡鍦ㄦ悳緔㈠紩鎿庝腑錛屾嫢鏈変竴涓鑹濂界殑鎺掑悕錛屼粠鑰岃幏寰楀ぇ閲忕殑嫻侀噺銆傛兂瑕佸湪鎼滅儲寮曟搸涓鑾峰緱鑹濂界殑鎺掑悕錛屽氨蹇呴』瑕佹彁鍗囨悳緔㈠紩鎿庤湗錏涘圭綉絝欑殑鎶撳彇閫熷害銆傚傛灉鎼滅儲寮曟搸瀵圭綉絝欐姄鍙栫殑棰戠巼浣庯紝灝變細鐩存帴褰卞搷鍒扮綉絝欑殑鎺掑悕銆佹祦閲忎互鍙婃潈閲嶇殑璇勭駭銆
閭d箞錛屽備綍鎻愬崌鎼滅儲寮曟搸銍樿洓瀵圭綉絝欑殑鎶撳彇閫熷害鍛錛
1銆佷富鍔ㄦ彁浜ょ綉絝欓摼鎺
褰撴洿鏂扮綉絝欓〉闈㈡垨鑰呬竴浜涢〉闈㈡病琚鎼滅儲寮曟搸鏀跺綍鐨勬椂鍊欙紝灝卞彲浠ユ妸閾炬帴鏁寸悊鍚庯紝鎻愪氦鍒版悳緔㈠紩鎿庝腑錛岃繖鏍峰彲浠ュ姞蹇緗戠珯欏甸潰琚鎼滅儲寮曟搸銍樿洓鎶撳彇鐨勯熷害銆
2銆佷紭璐ㄧ殑鍐呭
鎼滅儲寮曟搸銍樿洓鏄闈炲父鍠滄㈢綉絝欎紭璐ㄧ殑鍐呭癸紝濡傛灉緗戠珯闀挎椂闂翠笉鏇存柊浼樿川鐨勫唴瀹癸紝閭d箞鎼滅儲寮曟搸銍樿洓灝變細閫愭笎闄嶄綆瀵圭綉絝欑殑鎶撳彇鐜囷紝浠庤屽獎鍝嶇綉絝欐帓鍚嶄互鍙婃祦閲忋傛墍浠ョ綉絝欏繀欏昏佸畾鏃跺畾閲忕殑鏇存柊浼樿川鍐呭癸紝榪欐牱鎵嶈兘鍚稿紩鎼滅儲寮曟搸銍樿洓鐨勬姄鍙栵紝浠庤屾彁鍗囨帓鍚嶅拰嫻侀噺銆
3銆佺綉絝欏湴鍥
緗戠珯鍦板浘鍙浠ユ竻鏅扮殑鎶婄綉絝欏唴鎵鏈夌殑閾炬帴灞曠幇鍑烘潵錛岃屾悳緔㈠紩鎿庤湗錏涘彲浠ラ『鐫緗戠珯鍦板浘涓鐨勯摼鎺ヨ繘鍏ュ埌姣忎釜欏甸潰涓榪涜屾姄鍙栵紝浠庤屾彁鍗囩綉絝欐帓鍚嶃
4銆佸栭摼寤鴻
楂樿川閲忓栭摼瀵規彁鍗囩綉絝欐帓鍚嶆湁寰堝ぇ浣滅敤錛屾悳緔㈠紩鎿庤湗錏涗細欏虹潃閾炬帴榪涘叆鍒扮綉絝欎腑錛屼粠鑰屾彁鍗囨姄鍙栫綉絝欑殑閫熷害銆傚傛灉澶栭摼璐ㄩ噺澶宸錛屼篃浼氬獎鍝嶆悳緔㈠紩鎿庤湗錏涚殑鎶撳彇閫熷害銆
鎬諱箣錛屽彧瑕佹彁鍗囨悳緔㈠紩鎿庤湗錏涘圭綉絝欑殑鎶撳彇閫熷害錛岀綉絝欏氨鑳藉湪鎼滅儲寮曟搸涓鑾峰緱鑹濂芥帓鍚嶏紝浠庤岃幏寰楀ぇ閲忔祦閲忋
鎼滅儲寮曟搸銍樿洓鏄鎬庢牱鎶撳彇緗戦〉鐨勫憿錛
鎼滅儲寮曟搸鐢ㄦ潵鐖琛屽拰璁塊棶欏甸潰鐨勭▼搴忚縐頒負銍樿洓錛屼篃鍙鐖鉶銆傛悳緔㈠紩鎿庡懡浠ゅ畠鍒頒簰鑱旂綉涓婃祻瑙堢綉欏碉紝浠庤屽緱鍒頒簰鑱旂綉鐨勫ぇ閮ㄥ垎鏁版嵁(鍥犱負榪樻湁涓閮ㄥ垎鏆楃綉錛屼粬鏄寰堥毦鎶撳彇鍒扮殑)鐒跺悗鎶婅繖浜涙暟鎹瀛樺埌鎼滅儲寮曟搸鑷宸辯殑鏁版嵁搴撲腑銆傝嚜宸卞彂甯栨垨鑰呭栨帹浜х敓鐨刄RL濡傛灉娌℃湁鎼滅儲寮曟搸銍樿洓鐖琛岋紝閭d箞璇ユ悳緔㈠紩鎿庡氨涓嶄細鏀跺綍璇ラ〉闈錛屾洿涓嶇敤璇存帓鍚嶄簡銆俽鑰岃湗錏涙睜紼嬪簭鐨勫師鐞嗭紝灝辨槸灝嗚繘鍏ュ彉閲忔ā鏉跨敓鎴愬ぇ閲忕殑緗戦〉鍐呭癸紝浠庤屽惛澶ф壒鐨勮湗錏涳紝璁╁叾涓嶅仠鍦板湪榪欎簺欏甸潰涓鎶撳彇錛岃屽皢鎴戜滑闇瑕佹敹褰曠殑URL娣誨姞鍦ㄨ湗錏涚珯寮鍙戠殑涓涓鐗瑰畾鐗堝潡涓銆傝繖鏍峰氨鑳戒嬌鐢ㄦ垜浠闇瑕佹敹褰曠殑URL鏈夊ぇ閲忕殑銍樿洓鎶撳彇鐖琛岋紝澶уぇ鎻愬崌浜嗛〉闈㈡敹褰曠殑鍙鑳芥с傛墍璋撴棩鍙戠櫨涓囧栭摼灝辨槸榪欐牱鏉ョ殑錛屼竴涓鏅閫氱殑銍樿洓奼犱篃闇瑕佽嚦灝戞暟鐧句釜鍩熷悕銆傝屾嵁鎴戞墍鐭ラ珮閰瘋湗錏涙睜澶ф傛湁2000涓鐙絝嬪煙鍚嶏紝鏃ュ潎銍樿洓200W銆傛槸姣旇緝搴炲ぇ鐨勪竴涓銍樿洓奼犱簡銆俽浠ヤ笂灝辨槸銍樿洓奼犵殑鍘熺悊錛岄偅涔堝備綍鎼寤鴻湗錏涙睜?1.澶欼P鐨刅PS鎴栨湇鍔″櫒(鏍規嵁瑕佹眰鑰屽畾)r澶欼P鏈嶅姟鍣錛屽緩璁緹庡浗鏈嶅姟鍣錛屾渶濂芥槸楂橀厤閰嶏紝閰嶇疆鏂歸潰(鍏蜂綋鐪嬪煙鍚嶆暟閲)涓嶆帹鑽愪嬌鐢ㄩ欐腐鏈嶅姟鍣錛屽甫瀹藉皬錛屽規槗琚銍樿洓鐖婊°傞噸瑕佺殑鏄鏈嶅姟鍣ㄥ唴瀛樹竴瀹氳佸ぇ錛屼箣鍓嶆垜浠灝遍亣鍒拌繃錛屽墠鏈熷垰鍋氱殑鏃跺欙紝鐢ㄧ殑鍐呭瓨姣旇緝灝忥紝銍樿洓閲忎竴澶х殑璇濓紝絝嬮┈灝卞穿浜嗐俽2.涓瀹氭暟閲忕殑鍩熷悕(鏍規嵁鏁伴噺鑰屽畾)r鍙璐涔伴棽緗鐨勪簩鎵嬬殑鍩熷悕錛屽煙鍚嶄究瀹滅殑灝卞ソ錛屽ソ鐐圭殑銍樿洓奼狅紝鑷沖皯鍑嗗1000涓鍩熷悕鍚э紝銍樿洓奼犵洰鐨勪負鍚稿紩銍樿洓錛屽緩璁浣跨敤鍚庣紑涓篊NCOMNET涔嬬被鐨勫煙鍚嶏紝鍩熷悕璁¤垂浠ュ勾涓鴻¤垂錛屾垚鏈涓嶇畻澶澶э紝鍩熷悕鏍規嵁鏁堟灉浠ュ強鎮ㄧ殑閾炬帴鏁伴噺閫愭笎澧炲姞錛屾晥鏋滀細緲誨嶅為暱銆備篃鍙鍦ㄤ箣鍓嶈喘涔扮殑鍩熷悕涓婅В鏋愪竴閮ㄥ垎鍩熷悕鍑烘潵錛岀戶緇澧炲姞緗戠珯錛屾墿澶ф睜瀛愶紝澧炲姞銍樿洓閲忋俽3.鍙橀噺妯$増紼嬪簭(鎴愭湰涓鑸鍗冨厓宸﹀彸)r鍙鑷宸卞紑鍙戱紝濡傛灉涓嶄細鐨勶紝涔熷彲鍦ㄥ競鍦轟笂璐涔扮▼搴忓彉閲忔ā鐗,鐏墊椿鏂囩珷浠ュ強瀹屾暣鐨勭綉絝欏厓緔犲紩澶栭摼,CSS/JS/瓚呴摼鎺ョ瓑鐙鐗圭殑鎶宸у惛寮曡湗錏涚埇鍙!璁╂瘡涓鍩熷悕涓嬪唴瀹歸兘鍙樼殑涓嶄竴鏍!閮界煡閬撶櫨搴﹀逛簬緗戠珯閲嶅嶅唴瀹圭殑鎵撳嚮鎬佸害錛屾墍浠ュ繀欏諱繚鎸佹瘡涓絝欑殑鍐呭逛笉瑕佸嚭鐜伴噸澶嶏紝鎵浠ュ彉閲忕▼搴忓氨鏄懼緱灝や負閲嶈併俽4.紼嬪簭鍛(瀹炲姏紼嶅ソ鐐圭殑)r闇婊¤凍錛岀綉絝欏唴瀹圭殑閲囬泦浠ュ強鑷鍔ㄧ敓鎴愶紝鎴戜滑鍓嶆湡閲囬泦浜嗕笉灝戣瘝鏉★紝鑷鍔ㄧ粍鍚堟枃絝狅紝鍓嶆湡闃舵碉紝涓澶╀簲鍗佷竾鏂囩珷鐨勭敓鎴愰噺錛屾墍浠ュ規湇鍔″櫒鏄涓涓寰堝ぇ鐨勫帇鍔涖傛渶濂界▼搴忓憳瑕佹噦鏈嶅姟鍣ㄧ$悊緇存姢涔嬬被鐨勭煡璇嗭紝寰堥噸瑕併俽鍙浠ョ湅鍑猴紝銍樿洓奼犵殑鎴愭湰鍏跺疄涓嶇畻浣庯紝鏁板崈涓鍩熷悕錛屽ぇ鐨勬湇鍔″櫒錛岀▼搴忓憳錛屽逛簬涓鑸絝欓暱鏉ヨ達紝鎼寤鴻湗錏涙睜鎴愭湰鍋忛珮錛屾т環姣斾笉楂樸傚緩璁縐熺敤銍樿洓奼犳湇鍔★紝緗戜笂涔熸湁楂橀叿銍樿洓奼犮佽秴綰ц湗錏涙睜絳夊湪綰跨殑銍樿洓奼犮係EO銆佸栨帹銆佷釜浜虹珯闀垮彲浠ュ叧娉ㄤ竴涓嬨俽銍樿洓奼犵殑浣滅敤?1.銍樿洓奼犵殑鏁堟灉鏈夊摢浜況絳旓細鍙浠ュ揩閫熻╀綘鐨勭珯鐨勮繛鎺ュ緱鍒版悳緔㈠紩鎿庣殑鐖琛宺2.銍樿洓奼犲彲浠ユ彁楂樼綉絝欐潈閲嶅悧?r絳旓細鏈韜鎼滅儲寮曟搸鐖琛屽拰緇欎簣鏉冮噸闇瑕丯澶╋紝鍥犱負絎涓涓鐨勫師鍥狅紝浠栧彲浠ュ揩閫熺殑緇欎簣甯﹀洖鏁版嵁涓蹇冿紝涔熷氨鏄璇存湰鏉ュ簲璇ラ渶瑕丯澶╃埇琛岀殑欏甸潰錛岀幇鍦ㄥ揩閫熺埇琛屼簡銆備絾鏄鏄鍚︿細鎺ョ潃榪涜岃$畻瑕佺湅寰堝氬洜緔狅紝姣斿備綘緗戠珯鑷韜鏉冮噸銆侀〉闈㈣川閲忋侀〉闈㈡帹鑽??r3.銍樿洓奼犵殑鏁堟灉澧炲姞鏂扮珯鏀跺綍鍚梤絳旓細涓瀹氱▼搴︿笂鎶撳彇鐨勯〉闈㈠氫簡錛屾敹褰曚細鏈変竴瀹氭瘮渚嬬殑澧炲姞銆俽
❷ 精通python網路爬蟲之網路爬蟲學習路線
欲精通Python網路爬蟲,必先了解網路爬蟲學習路線,本篇經驗主要解決這個問題。部分內容參考自書籍《精通Python網路爬蟲》。
作者:韋瑋
轉載請註明出處
隨著大數據時代的到來,人們對數據資源的需求越來越多,而爬蟲是一種很好的自動採集數據的手段。
那麼,如何才能精通Python網路爬蟲呢?學習Python網路爬蟲的路線應該如何進行呢?在此為大傢具體進行介紹。
1、選擇一款合適的編程語言
事實上,Python、PHP、JAVA等常見的語言都可以用於編寫網路爬蟲,你首先需要選擇一款合適的編程語言,這些編程語言各有優勢,可以根據習慣進行選擇。在此筆者推薦使用Python進行爬蟲項目的編寫,其優點是:簡潔、掌握難度低。
2、掌握Python的一些基礎爬蟲模塊
當然,在進行這一步之前,你應當先掌握Python的一些簡單語法基礎,然後才可以使用Python語言進行爬蟲項目的開發。
在掌握了Python的語法基礎之後,你需要重點掌握一個Python的關於爬蟲開發的基礎模塊。這些模塊有很多可以供你選擇,比如urllib、requests等等,只需要精通一個基礎模塊即可,不必要都精通,因為都是大同小異的,在此推薦的是掌握urllib,當然你可以根據你的習慣進行選擇。
3、深入掌握一款合適的表達式
學會了如何爬取網頁內容之後,你還需要學會進行信息的提取。事實上,信息的提取你可以通過表達式進行實現,同樣,有很多表達式可以供你選擇使用,常見的有正則表達式、XPath表達式、BeautifulSoup等,這些表達式你沒有必要都精通,同樣,精通1-2個,其他的掌握即可,在此建議精通掌握正則表達式以及XPath表達式,其他的了解掌握即可。正則表達式可以處理的數據的范圍比較大,簡言之,就是能力比較強,XPath只能處理XML格式的數據,有些形式的數據不能處理,但XPath處理數據會比較快。
4、深入掌握抓包分析技術
事實上,很多網站都會做一些反爬措施,即不想讓你爬到他的數據。最常見的反爬手段就是對數據進行隱藏處理,這個時候,你就無法直接爬取相關的數據了。作為爬蟲方,如果需要在這種情況下獲取數據,那麼你需要對相應的數據進行抓包分析,然後再根據分析結果進行處理。一般推薦掌握的抓包分析工具是Fiddler,當然你也可以用其他的抓包分析工具,沒有特別的要求。
5、精通一款爬蟲框架
事實上,當你學習到這一步的時候,你已經入門了。
這個時候,你可能需要深入掌握一款爬蟲框架,因為採用框架開發爬蟲項目,效率會更加高,並且項目也會更加完善。
同樣,你可以有很多爬蟲框架進行選擇,比如Scrapy、pySpider等等,一樣的,你沒必要每一種框架都精通,只需要精通一種框架即可,其他框架都是大同小異的,當你深入精通一款框架的時候,其他的框架了解一下事實上你便能輕松使用,在此推薦掌握Scrapy框架,當然你可以根據習慣進行選擇。
6、掌握常見的反爬策略與反爬處理策略
反爬,是相對於網站方來說的,對方不想給你爬他站點的數據,所以進行了一些限制,這就是反爬。
反爬處理,是相對於爬蟲方來說的,在對方進行了反爬策略之後,你還想爬相應的數據,就需要有相應的攻克手段,這個時候,就需要進行反爬處理。
事實上,反爬以及反爬處理都有一些基本的套路,萬變不離其宗,這些後面作者會具體提到,感興趣的可以關注。
常見的反爬策略主要有:
IP限制
UA限制
Cookie限制
資源隨機化存儲
動態載入技術
……
對應的反爬處理手段主要有:
IP代理池技術
用戶代理池技術
Cookie保存與處理
自動觸發技術
抓包分析技術+自動觸發技術
……
這些大家在此先有一個基本的思路印象即可,後面都會具體通過實戰案例去介紹。
7、掌握PhantomJS、Selenium等工具的使用
有一些站點,通過常規的爬蟲很難去進行爬取,這個時候,你需要藉助一些工具模塊進行,比如PhantomJS、Selenium等,所以,你還需要掌握PhantomJS、Selenium等工具的常規使用方法。
8、掌握分布式爬蟲技術與數據去重技術
如果你已經學習或者研究到到了這里,那麼恭喜你,相信現在你爬任何網站都已經不是問題了,反爬對你來說也只是一道形同虛設的牆而已了。
但是,如果要爬取的資源非常非常多,靠一個單機爬蟲去跑,仍然無法達到你的目的,因為太慢了。
所以,這個時候,你還應當掌握一種技術,就是分布式爬蟲技術,分布式爬蟲的架構手段有很多,你可以依據真實的伺服器集群進行,也可以依據虛擬化的多台伺服器進行,你可以採用urllib+redis分布式架構手段,也可以採用Scrapy+redis架構手段,都沒關系,關鍵是,你可以將爬蟲任務部署到多台伺服器中就OK。
至於數據去重技術,簡單來說,目的就是要去除重復數據,如果數據量小,直接採用資料庫的數據約束進行實現,如果數據量很大,建議採用布隆過濾器實現數據去重即可,布隆過濾器的實現在Python中也是不難的。
以上是如果你想精通Python網路爬蟲的學習研究路線,按照這些步驟學習下去,可以讓你的爬蟲技術得到非常大的提升。
至於有些朋友問到,使用Windows系統還是Linux系統,其實,沒關系的,一般建議學習的時候使用Windows系統進行就行,比較考慮到大部分朋友對該系統比較數據,但是在實際運行爬蟲任務的時候,把爬蟲部署到Linux系統中運行,這樣效率比較高。由於Python的可移植性非常好,所以你在不同的平台中運行一個爬蟲,代碼基本上不用進行什麼修改,只需要學會部署到Linux中即可。所以,這也是為什麼說使用Windows系統還是Linux系統進行學習都沒多大影響的原因之一。
本篇文章主要是為那些想學習Python網路爬蟲,但是又不知道從何學起,怎麼學下去的朋友而寫的。希望通過本篇文章,可以讓你對Python網路爬蟲的研究路線有一個清晰的了解,這樣,本篇文章的目的就達到了,加油!
本文章由作者韋瑋原創,轉載請註明出處。
❸ 如何在linux ubuntu 下安裝scapy pyx
最近在學習爬蟲,早就聽說Python寫爬蟲極爽(貌似pythoner說python都爽,不過也確實,python的類庫非常豐富,不用重復造輪子),還有一個強大的框架Scrapy,於是決定嘗試一下。
要想使用Scrapy第一件事,當然是安裝Scrapy,嘗試了Windows和Ubuntu的安裝,本文先講一下 Ubuntu的安裝,比Windows的安裝簡單太多了。抽時間也會詳細介紹一下怎麼在Windows下進行安裝。
官方介紹,在安裝Scrapy前需要安裝一系列的依賴.
* Python 2.7: Scrapy是Python框架,當然要先安裝Python ,不過由於Scrapy暫時只支持 Python2.7,因此首先確保你安裝的是Python 2.7
* lxml:大多數Linux發行版自帶了lxml
* OpenSSL:除了windows之外的系統都已經提供
* Python Package: pip and setuptools. 由於現在pip依賴setuptools,所以安裝pip會自動安裝setuptools
有上面的依賴可知,在非windows的環境下安裝 Scrapy的相關依賴是比較簡單的,只用安裝pip即可。Scrapy使用pip完成安裝。
檢查Scrapy依賴是否安裝
你可能會不放心自己的電腦是否已經安裝了,上面說的已經存在的依賴,那麼你可以使用下面的方法檢查一下,本文使用的是Ubuntu 14.04。
檢查Python的版本
$ python --version
如果看到下面的輸出,說明Python的環境已經安裝,我這里顯示的是Python 2.7.6,版本也是2.7的滿足要求。如果沒有出現下面的信息,那麼請讀者自行網路安裝Python,本文不介紹Python的安裝(網上一搜一堆)。
檢查lxml和OpenSSL是否安裝
假設已經安裝了Python,在控制台輸入python,進入Python的交互環境。
然後分別輸入import lxml和import OpenSSL如果沒有報錯,說明兩個依賴都已經安裝。
安裝python-dev和libevent
python-dev是linux上開發python比較重要的工具,以下的情況你需要安裝
* 你需要自己安裝一個源外的python類庫, 而這個類庫內含需要編譯的調用python api的c/c++文件
* 你自己寫的一個程序編譯需要鏈接libpythonXX.(a|so)
libevent是一個時間出發的高性能的網路庫,很多框架的底層都使用了libevent
上面兩個庫是需要安裝的,不然後面後報錯。使用下面的指令安裝
$sudo apt-get install python-dev
$sudo apt-get install libevent-dev
安裝pip
因為Scrapy可以使用pip方便的安裝,因此我們需要先安裝pip,可以使用下面的指令安裝pip
$ sudo apt-get install python-pip
使用pip安裝Scrapy
使用下面的指令安裝Scrapy。
$ sudo pip install scrapy
記住一定要獲得root許可權,否則會出現下面的錯誤。
至此scrapy安裝完成,使用下面的命令檢查Scrapy是否安裝成功。
$ scrapy version
顯示如下結果說明安裝成功,此處的安裝版本是1.02
❹ linux下python怎麼寫爬蟲獲取圖片
跟linux有什麼關系,python是跨平台的,爬取圖片的代碼如下:
import urllib.requestimport osimport randomdef url_open(url):
req=urllib.request.Request(url) #為請求設置user-agent,使得程序看起來更像一個人類
req.add_header('User-Agent','Mozilla/5.0 (Windows NT 6.1; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0') #代理IP,使用戶能以不同IP訪問,從而防止被伺服器發現
'''iplist=['1.193.162.123:8000','1.193.162.91:8000','1.193.163.32:8000']
proxy_support=urllib.request.ProxyHandler({'http':random.choice(iplist)})
opener=urllib.request.build_opener(proxy_support)
opener.addheaders=[('User-Agent','Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.154 Safari/537.36 LBBROWSER')]
urllib.request.install_opener(opener)'''
response=urllib.request.urlopen(req)
html=response.read() return htmldef get_page(url):
html=url_open(url).decode('utf-8')
a=html.find('current-comment-page')+23
b=html.find(']',a) #print(html[a:b])
return html[a:b]def find_imgs(url):
html=url_open(url).decode('utf-8')
img_addrs=[]
a=html.find('img src=') while a!=-1:
b=html.find('.jpg',a,a+140) if b!=-1: if html[a+9]!='h':
img_addrs.append('http:'+html[a+9:b+4]) else:
img_addrs.append(html[a+9:b+4]) else:
b=a+9
a=html.find('img src=',b) for each in img_addrs:
print(each+'我的列印') return img_addrsdef save_imgs(folder,img_addrs):
for each in img_addrs: #print('one was saved')
filename=each.split('/')[-1] with open(filename,'wb') as f:
img=url_open(each)
f.write(img)def download_mm(folder='ooxx',pages=10):
os.mkdir(folder)
os.chdir(folder)
url=""
page_num=int(get_page(url)) for i in range(pages):
page_num=page_num-1
page_url=url+'page-'+str(page_num)+'#comments'
img_addrs=find_imgs(page_url)
save_imgs(folder,img_addrs)if __name__=='__main__':
download_mm()
完成
運行結果
❺ Linux/Nginx如何查看搜索引擎蜘蛛爬蟲的行為
Linux shell命令
1. 網路蜘蛛爬行的次數
cat access.log | grep Baispider | wc
最左面的數值顯示的就是爬行次數。
2. 網路蜘蛛的詳細記錄(Ctrl C可以終止)
cat access.log | grep Baispider
也可以用下面的命令:
cat access.log | grep Baispider | tail -n 10
cat access.log | grep Baispider | head -n 10
只看最後10條或最前10條,這用就能知道這個日誌文件的開始記錄的時間和日期。
3. 網路蜘蛛抓取首頁的詳細記錄
cat access.log | grep Baispider | grep 「GET / HTTP」
網路蜘蛛好像對首頁非常熱愛每個鍾頭都來光顧,而谷歌和雅虎蜘蛛更喜歡內頁。
4. 網路蜘蛛派性記錄時間點分布
cat access.log | grep 「Baispider 」 | awk 『{print $4}'
5. 網路蜘蛛爬行頁面按次數降序列表
cat access.log | grep 「Baispider 」 | awk 『{print $7}' | sort | uniq -c | sort -r
文中的Baispider 改成Googlebot都可以查看谷歌的數據,鑒於大陸的特殊性,大家應該對網路的log更為關注。
附:(Mediapartners-Google)Google adsense蜘蛛的詳細爬行記錄
cat access.log | grep Mediapartners
Mediapartners-Google是什麼呢?Google adsense廣告之所以能與內容相關,因為每個包含著adsense的廣告被訪問後,很快就有個Mediapartners-Google蜘蛛來到這個頁面,所以幾分鍾後再刷新就能顯示相關性廣告了,真厲害啊!
ps:linux下nginx如何啟用網站日誌,查看蜘蛛爬蟲
默認的路徑是你安裝時候指定的
如果用的LNMP之類的安裝包
你可以在SHELL下
whereisnginx
找到相應的路徑之後
在NGINX下的CONF文件夾里看配置文件,日誌文件如果記錄了話
在配置文件里有路徑的~