導航:首頁 > 網路問題 > 被網路當做爬蟲怎麼辦

被網路當做爬蟲怎麼辦

發布時間:2022-09-11 10:05:09

如何防止網站被爬蟲爬取的幾種辦法

相較於爬蟲技術,反爬蟲實際上更復雜。目前許多互聯網企業都會花大力氣進行「反爬蟲」,網路爬蟲不但會占據過多的網站流量,導致有真正需求的用戶沒法進入網站,另外也有可能會導致網站關鍵數據的外泄等現象。網路爬蟲遍布互聯網的各個角落,因此網路爬蟲有好處也有壞處,接下來介紹一下和網路爬蟲一同誕生的反爬蟲技術,如何才能防止別人爬取自己的網站?
1、基於程序本身去防止爬取:作為爬蟲程序,爬取行為是對頁面的源文件爬取,如爬取靜態頁面的html代碼,可以用jquery去模仿寫html,這種方法偽裝的頁面就很難被爬取了,不過這種方法對程序員的要求很高。
2、基於iptables和shell腳本:可以對nginx的access.log進行策略定義,例如定義在1分鍾內並發連接數超過30個ip為非法,如ip不在白名單內,則加入iptables策略封掉,當然這種的缺點是會有「誤傷」,策略細粒度越小就會有更多的「誤傷」,細粒度大就會使效果變差,另外還有類似的第三方工具fail2ban,利用做filter和actor對一些有危害的操作記錄或是封ip。但是對於某個特定的爬蟲地址(例如網易、有道)的爬取行為拒絕也很難准確做到,因為你無法准確知道這些特定的爬蟲ip地址。注意:建議不要用封ip條目的方式,iptables列表長度是65535時就會封滿,伺服器也就會死機。
3.使用robots.txt文件:例如阻止所有的爬蟲爬取,但是這種效果不是很明顯。
User-agent: *
Disallow: /
4.使用nginx的自帶功能:通過對httpuseragent阻塞來實現,包括GET/POST方式的請求,以nginx為例,具體步驟如下:
編輯nginx.conf
拒絕以wget方式的httpuseragent,增加如下內容
## Block http user agent - wget ##
if ($http_user_agent ~* (Wget) ) {
return 403;
}
## Block Software download user agents ##
if ($http_user_agent ~* LWP::Simple|BBBike|wget) {
return 403;

平滑啟動
# /usr/local/nginx/sbin/nginx -s reload
如何拒絕多種httpuseragent,內容如下:
if ($http_user_agent ~ (agent1|agent2|Foo|Wget|Catall Spider|AcoiRobot) ) {
return 403;
}
大小寫敏感匹配
### 大小寫敏感http user agent拒絕###
if ($http_user_agent ~ (Catall Spider|AcoiRobot) ) {
return 403;
}
### 大小寫不敏感http user agent拒絕###
if ($http_user_agent ~* (foo|bar) ) {
return 403;
}
注意語法:~*表示是大小寫不敏感,~表示是大小寫敏感

}
以上就是預防網站信息被別人爬取的一些方法,大量的爬取行為會對web伺服器的性能有影響,所以一定要注重反爬蟲措施。

❷ 如何應付不知名的爬蟲騷擾

一、手工識別和拒絕爬蟲的訪問

有相當多的爬蟲對網站會造成非常高的負載,因此識別爬蟲的來源IP是很容易的事情。最簡單的辦法就是用netstat檢查80埠的連接:
C代碼 netstat -nt | grep youhostip:80 | awk '{print $5}' | awk -F":" '{print $1}'| sort | uniq -c | sort -r -n netstat -nt | grep youhostip:80 | awk '{print $5}' | awk -F":" '{print $1}'| sort | uniq -c | sort -r -n
這行shell可以按照80埠連接數量對來源IP進行排序,這樣可以直觀的判斷出來網頁爬蟲。一般來說爬蟲的並發連接非常高。

如果使用lighttpd做Web Server,那麼就更簡單了。lighttpd的mod_status提供了非常直觀的並發連接的信息,包括每個連接的來源IP,訪問的URL,連接狀態和連接時間等信息,只要檢查那些處於handle-request狀態的高並發IP就可以很快確定爬蟲的來源IP了。

拒絕爬蟲請求既可以通過內核防火牆來拒絕,也可以在web server拒絕,比方說用iptables拒絕:
C代碼 iptables -A INPUT -i eth0 -j DROP -p tcp --dport 80 -s 84.80.46.0/24 iptables -A INPUT -i eth0 -j DROP -p tcp --dport 80 -s 84.80.46.0/24
直接封鎖爬蟲所在的C網段地址。這是因為一般爬蟲都是運行在託管機房裡面,可能在一個C段裡面的多台伺服器上面都有爬蟲,而這個C段不可能是用戶寬頻上網,封鎖C段可以很大程度上解決問題。

有些人提出一種腦殘的觀點,說我要懲罰這些爬蟲。我專門在網頁裡面設計動態循環鏈接頁面,讓爬蟲掉進陷阱,死循環爬不出來,其實根本用不著設置陷阱,弱智爬蟲對正常網頁自己就爬不出來,這樣做多此一舉不說,而且會讓真正的搜索引擎降低你的網頁排名。而且運行一個爬蟲根本不消耗什麼機器資源,相反,真正寶貴的是你的伺服器CPU資源和伺服器帶寬,簡單的拒絕掉爬蟲的請求是反爬蟲最有效的策略。

二、通過識別爬蟲的User-Agent信息來拒絕爬蟲

有很多爬蟲並不會以很高的並發連接爬取,一般不容易暴露自己;有些爬蟲的來源IP分布很廣,很難簡單的通過封鎖IP段地址來解決問題;另外還有很多各種各樣的小爬蟲,它們在嘗試Google以外創新的搜索方式,每個爬蟲每天爬取幾萬的網頁,幾十個爬蟲加起來每天就能消耗掉上百萬動態請求的資源,由於每個小爬蟲單獨的爬取量都很低,所以你很難把它從每天海量的訪問IP地址當中把它准確的挖出來。

這種情況下我們可以通過爬蟲的User-Agent信息來識別。每個爬蟲在爬取網頁的時候,會聲明自己的User-Agent信息,因此我們就可以通過記錄和分析User-Agent信息來挖掘和封鎖爬蟲。我們需要記錄每個請求的User-Agent信息,對於Rails來說我們可以簡單的在app/controllers/application.rb裡面添加一個全局的before_filter,來記錄每個請求的User-Agent信息:
Ruby代碼 logger.info "HTTP_USER_AGENT #{request.env["HTTP_USER_AGENT"]}" logger.info "HTTP_USER_AGENT #{request.env["HTTP_USER_AGENT"]}"

然後統計每天的proction.log,抽取User-Agent信息,找出訪問量最大的那些User-Agent。要注意的是我們只關注那些爬蟲的User-Agent信息,而不是真正瀏覽器User-Agent,所以還要排除掉瀏覽器User-Agent,要做到這一點僅僅需要一行shell:
Ruby代碼 grep HTTP_USER_AGENT proction.log | grep -v -E 'MSIE|Firefox|Chrome|Opera|Safari|Gecko' | sort | uniq -c | sort -r -n | head -n 100 > bot.log grep HTTP_USER_AGENT proction.log | grep -v -E 'MSIE|Firefox|Chrome|Opera|Safari|Gecko' | sort | uniq -c | sort -r -n | head -n 100 > bot.log

統計結果類似這樣:
C代碼 57335 HTTP_USER_AGENT Baispider+(+ http://www..com/search/spider.htm)56639 HTTP_USER_AGENT Mozilla/5.0 (compatible; Googlebot/2.1; + http://www.google.com/bot.html)42610 HTTP_USER_AGENT Mediapartners-Google 19131 HTTP_USER_AGENT msnbot/2.0b (+ http://search.msn.com/msnbot.htm)57335 HTTP_USER_AGENT Baispider+(+ http://www..com/search/spider.htm) 56639 HTTP_USER_AGENT Mozilla/5.0 (compatible; Googlebot/2.1; + http://www.google.com/bot.html) 42610 HTTP_USER_AGENT Mediapartners-Google 19131 HTTP_USER_AGENT msnbot/2.0b (+ http://search.msn.com/msnbot.htm)

從日誌就可以直觀的看出每個爬蟲的請求次數。要根據User-Agent信息來封鎖爬蟲是件很容易的事情,lighttpd配置如下:
C代碼 $HTTP["useragent"] =~ "qihoobot|^Java|Commons-HttpClient|Wget|^PHP|Ruby|Python" { url.rewrite = ( "^/(.*)" => "/crawler.html" ) } $HTTP["useragent"] =~ "qihoobot|^Java|Commons-HttpClient|Wget|^PHP|Ruby|Python" { url.rewrite = ( "^/(.*)" => "/crawler.html" ) }

使用這種方式來封鎖爬蟲雖然簡單但是非常有效,除了封鎖特定的爬蟲,還可以封鎖常用的編程語言和HTTP類庫的User-Agent信息,這樣就可以避免很多無謂的程序員用來練手的爬蟲程序對網站的騷擾。

還有一種比較常見的情況,就是某個搜索引擎的爬蟲對網站爬取頻率過高,但是搜索引擎給網站帶來了很多流量,我們並不希望簡單的封鎖爬蟲,僅僅是希望降低爬蟲的請求頻率,減輕爬蟲對網站造成的負載,那麼我們可以這樣做:
C代碼 $HTTP["user-agent"] =~ "Baispider+" { connection.delay-seconds = 10 } $HTTP["user-agent"] =~ "Baispider+" { connection.delay-seconds = 10 }
對網路的爬蟲請求延遲10秒鍾再進行處理,這樣就可以有效降低爬蟲對網站的負載了。

三、通過網站流量統計系統和日誌分析來識別爬蟲

有些爬蟲喜歡修改User-Agent信息來偽裝自己,把自己偽裝成一個真實瀏覽器的User-Agent信息,讓你無法有效的識別。這種情況下我們可以通過網站流量系統記錄的真實用戶訪問IP來進行識別。

主流的網站流量統計系統不外乎兩種實現策略:一種策略是在網頁裡面嵌入一段js,這段js會向特定的統計伺服器發送請求的方式記錄訪問量;另一種策略是直接分析伺服器日誌,來統計網站訪問量。在理想的情況下,嵌入js的方式統計的網站流量應該高於分析伺服器日誌,這是因為用戶瀏覽器會有緩存,不一定每次真實用戶訪問都會觸發伺服器的處理。但實際情況是,分析伺服器日誌得到的網站訪問量遠遠高於嵌入js方式,極端情況下,甚至要高出10倍以上。

現在很多網站喜歡採用awstats來分析伺服器日誌,來計算網站的訪問量,但是當他們一旦採用Google Analytics來統計網站流量的時候,卻發現GA統計的流量遠遠低於awstats,為什麼GA和awstats統計會有這么大差異呢?罪魁禍首就是把自己偽裝成瀏覽器的網路爬蟲。這種情況下awstats無法有效的識別了,所以awstats的統計數據會虛高。

其實作為一個網站來說,如果希望了解自己的網站真實訪問量,希望精確了解網站每個頻道的訪問量和訪問用戶,應該用頁面裡面嵌入js的方式來開發自己的網站流量統計系統。自己做一個網站流量統計系統是件很簡單的事情,寫段伺服器程序響應客戶段js的請求,分析和識別請求然後寫日誌的同時做後台的非同步統計就搞定了。

通過流量統計系統得到的用戶IP基本是真實的用戶訪問,因為一般情況下爬蟲是無法執行網頁裡面的js代碼片段的。所以我們可以拿流量統計系統記錄的IP和伺服器程序日誌記錄的IP地址進行比較,如果伺服器日誌裡面某個IP發起了大量的請求,在流量統計系統裡面卻根本找不到,或者即使找得到,可訪問量卻只有寥寥幾個,那麼無疑就是一個網路爬蟲。

分析伺服器日誌統計訪問最多的IP地址段一行shell就可以了:
C代碼 grep Processing proction.log | awk '{print $4}' | awk -F'.' '{print $1"."$2"."$3".0"}' | sort | uniq -c | sort -r -n | head -n 200 > stat_ip.log grep Processing proction.log | awk '{print $4}' | awk -F'.' '{print $1"."$2"."$3".0"}' | sort | uniq -c | sort -r -n | head -n 200 > stat_ip.log

然後把統計結果和流量統計系統記錄的IP地址進行對比,排除真實用戶訪問IP,再排除我們希望放行的網頁爬蟲,比方Google,網路,微軟msn爬蟲等等。最後的分析結果就就得到了爬蟲的IP地址了。以下代碼段是個簡單的實現示意:
Ruby代碼 whitelist = [] IO.foreach("#{RAILS_ROOT}/lib/whitelist.txt") { |line| whitelist << line.split[0].strip if line } realiplist = [] IO.foreach("#{RAILS_ROOT}/log/visit_ip.log") { |line| realiplist << line.strip if line } iplist = [] IO.foreach("#{RAILS_ROOT}/log/stat_ip.log") do |line| ip = line.split[1].strip iplist << ip if line.split[0].to_i > 3000 && !whitelist.include?(ip) && !realiplist.include?(ip) end Report.deliver_crawler(iplist) whitelist = [] IO.foreach("#{RAILS_ROOT}/lib/whitelist.txt") { |line| whitelist << line.split[0].strip if line } realiplist = [] IO.foreach("#{RAILS_ROOT}/log/visit_ip.log") { |line| realiplist << line.strip if line } iplist = [] IO.foreach("#{RAILS_ROOT}/log/stat_ip.log") do |line| ip = line.split[1].strip iplist << ip if line.split[0].to_i > 3000 && !whitelist.include?(ip) && !realiplist.include?(ip) end Report.deliver_crawler(iplist)
分析伺服器日誌裡面請求次數超過3000次的IP地址段,排除白名單地址和真實訪問IP地址,最後得到的就是爬蟲IP了,然後可以發送郵件通知管理員進行相應的處理。

四、網站的實時反爬蟲防火牆實現策略

通過分析日誌的方式來識別網頁爬蟲不是一個實時的反爬蟲策略。如果一個爬蟲非要針對你的網站進行處心積慮的爬取,那麼他可能會採用分布式爬取策略,比方說尋找幾百上千個國外的代理伺服器瘋狂的爬取你的網站,從而導致網站無法訪問,那麼你再分析日誌是不可能及時解決問題的。所以必須採取實時反爬蟲策略,要能夠動態的實時識別和封鎖爬蟲的訪問。

要自己編寫一個這樣的實時反爬蟲系統其實也很簡單。比方說我們可以用memcached來做訪問計數器,記錄每個IP的訪問頻度,在單位時間之內,如果訪問頻率超過一個閥值,我們就認為這個IP很可能有問題,那麼我們就可以返回一個驗證碼頁面,要求用戶填寫驗證碼。如果是爬蟲的話,當然不可能填寫驗證碼,所以就被拒掉了,這樣很簡單就解決了爬蟲問題。

用memcache記錄每個IP訪問計數,單位時間內超過閥值就讓用戶填寫驗證碼,用Rails編寫的示例代碼如下:
Ruby代碼 ip_counter = Rails.cache.increment(request.remote_ip) if !ip_counter Rails.cache.write(request.remote_ip, 1, :expires_in => 30.minutes) elsif ip_counter > 2000 render :template => 'test', :status => 401 and return false end ip_counter = Rails.cache.increment(request.remote_ip) if !ip_counter Rails.cache.write(request.remote_ip, 1, :expires_in => 30.minutes) elsif ip_counter > 2000 render :template => 'test', :status => 401 and return false end

這段程序只是最簡單的示例,實際的代碼實現我們還會添加很多判斷,比方說我們可能要排除白名單IP地址段,要允許特定的User-Agent通過,要針對登錄用戶和非登錄用戶,針對有無referer地址採取不同的閥值和計數加速器等等。

此外如果分布式爬蟲爬取頻率過高的話,過期就允許爬蟲再次訪問還是會對伺服器造成很大的壓力,因此我們可以添加一條策略:針對要求用戶填寫驗證碼的IP地址,如果該IP地址短時間內繼續不停的請求,則判斷為爬蟲,加入黑名單,後續請求全部拒絕掉。為此,示例代碼可以改進一下:
Ruby代碼 before_filter :ip_firewall, :except => :test def ip_firewall render :file => "#{RAILS_ROOT}/public/403.html", :status => 403 if BlackList.include?(ip_sec) end before_filter :ip_firewall, :except => :test def ip_firewall render :file => "#{RAILS_ROOT}/public/403.html", :status => 403 if BlackList.include?(ip_sec) end
我們可以定義一個全局的過濾器,對所有請求進行過濾,出現在黑名單的IP地址一律拒絕。對非黑名單的IP地址再進行計數和統計:
Ruby代碼 ip_counter = Rails.cache.increment(request.remote_ip) if !ip_counter Rails.cache.write(request.remote_ip, 1, :expires_in => 30.minutes) elsif ip_counter > 2000 crawler_counter = Rails.cache.increment("crawler/#{request.remote_ip}") if !crawler_counter Rails.cache.write("crawler/#{request.remote_ip}", 1, :expires_in => 10.minutes) elsif crawler_counter > 50 BlackList.add(ip_sec) render :file => "#{RAILS_ROOT}/public/403.html", :status => 403 and return false end render :template => 'test', :status => 401 and return false end ip_counter = Rails.cache.increment(request.remote_ip) if !ip_counter Rails.cache.write(request.remote_ip, 1, :expires_in => 30.minutes) elsif ip_counter > 2000 crawler_counter = Rails.cache.increment("crawler/#{request.remote_ip}") if !crawler_counter Rails.cache.write("crawler/#{request.remote_ip}", 1, :expires_in => 10.minutes) elsif crawler_counter > 50 BlackList.add(ip_sec) render :file => "#{RAILS_ROOT}/public/403.html", :status => 403 and return false end render :template => 'test', :status => 401 and return false end
如果某個IP地址單位時間內訪問頻率超過閥值,再增加一個計數器,跟蹤他會不會立刻填寫驗證碼,如果他不填寫驗證碼,在短時間內還是高頻率訪問,就把這個IP地址段加入黑名單,除非用戶填寫驗證碼激活,否則所有請求全部拒絕。這樣我們就可以通過在程序裡面維護黑名單的方式來動態的跟蹤爬蟲的情況,甚至我們可以自己寫個後台來手工管理黑名單列表,了解網站爬蟲的情況。

這個策略已經比較智能了,但是還不夠好!我們還可以繼續改進:

1、用網站流量統計系統來改進實時反爬蟲系統

還記得嗎?網站流量統計系統記錄的IP地址是真實用戶訪問IP,所以我們在網站流量統計系統裡面也去操作memcached,但是這次不是增加計數值,而是減少計數值。在網站流量統計系統裡面每接收到一個IP請求,就相應的cache.decrement(key)。所以對於真實用戶的IP來說,它的計數值總是加1然後就減1,不可能很高。這樣我們就可以大大降低判斷爬蟲的閥值,可以更加快速准確的識別和拒絕掉爬蟲。

2、用時間窗口來改進實時反爬蟲系統

爬蟲爬取網頁的頻率都是比較固定的,不像人去訪問網頁,中間的間隔時間比較無規則,所以我們可以給每個IP地址建立一個時間窗口,記錄IP地址最近12次訪問時間,每記錄一次就滑動一次窗口,比較最近訪問時間和當前時間,如果間隔時間很長判斷不是爬蟲,清除時間窗口,如果間隔不長,就回溯計算指定時間段的訪問頻率,如果訪問頻率超過閥值,就轉向驗證碼頁面讓用戶填寫驗證碼。

最終這個實時反爬蟲系統就相當完善了,它可以很快的識別並且自動封鎖爬蟲的訪問,保護網站的正常訪問。不過有些爬蟲可能相當狡猾,它也許會通過大量的爬蟲測試來試探出來你的訪問閥值,以低於閥值的爬取速度抓取你的網頁,因此我們還需要輔助第3種辦法,用日誌來做後期的分析和識別,就算爬蟲爬的再慢,它累計一天的爬取量也會超過你的閥值被你日誌分析程序識別出來。

總之我們綜合運用上面的四種反爬蟲策略,可以很大程度上緩解爬蟲對網站造成的負面影響,保證網站的正常訪問。

❸ 網站被惡意爬蟲抓取,應該怎麼

在nginx上配置規則,限制來該IP網段的連接數和請求數就可以了啊。

❹ 如何對付網路爬蟲

PHP可以通過$_SERVER['HTTP_USER_AGENT']函數來判斷是否是蜘蛛以及是什麼蜘蛛! 直接把代碼給你吧! $useragent=$_SERVER['HTTP_USER_AGENT']; if(substr_count($useragent,"Baispider")){echo "網路蜘蛛";}

❺ 如何應對網站反爬蟲策略如何高效地爬大量數據

一般有一下幾種

一些常用的方法
IP代理

對於IP代理,各個語言的Native Request API都提供的IP代理響應的API, 需要解決的主要就是IP源的問題了.
網路上有廉價的代理IP(1元4000個左右), 我做過簡單的測試, 100個IP中, 平均可用的在40-60左右, 訪問延遲均在200以上.
網路有高質量的代理IP出售, 前提是你有渠道.
因為使用IP代理後, 延遲加大, 失敗率提高, 所以可以將爬蟲框架中將請求設計為非同步, 將請求任務加入請求隊列(RabbitMQ,Kafka,Redis), 調用成功後再進行回調處理, 失敗則重新加入隊列. 每次請求都從IP池中取IP, 如果請求失敗則從IP池中刪除該失效的IP.
Cookies

有一些網站是基於cookies做反爬蟲, 這個基本上就是如 @朱添一 所說的, 維護一套Cookies池
注意研究下目標網站的cookies過期事件, 可以模擬瀏覽器, 定時生成cookies
限速訪問

像開多線程,循環無休眠的的暴力爬取數據, 那真是分分鍾被封IP的事, 限速訪問實現起來也挺簡單(用任務隊列實現), 效率問題也不用擔心, 一般結合IP代理已經可以很快地實現爬去目標內容.

一些坑

大批量爬取目標網站的內容後, 難免碰到紅線觸發對方的反爬蟲機制. 所以適當的告警提示爬蟲失效是很有必有的.
一般被反爬蟲後, 請求返回的HttpCode為403的失敗頁面, 有些網站還會返回輸入驗證碼(如豆瓣), 所以檢測到403調用失敗, 就發送報警, 可以結合一些監控框架, 如Metrics等, 設置短時間內, 告警到達一定閥值後, 給你發郵件,簡訊等.
當然, 單純的檢測403錯誤並不能解決所有情況. 有一些網站比較奇葩, 反爬蟲後返回的頁面仍然是200的(如去哪兒), 這時候往往爬蟲任務會進入解析階段, 解析失敗是必然的. 應對這些辦法, 也只能在解析失敗的時候, 發送報警, 當告警短時間到達一定閥值, 再觸發通知事件.
當然這個解決部分並不完美, 因為有時候, 因為網站結構改變, 而導致解析失敗, 同樣回觸發告警. 而你並不能很簡單地區分, 告警是由於哪個原因引起的.

❻ 如何對付網路爬蟲

要甄別網路爬蟲也很簡單,對真實訪問IP進行統計和排序,挑選出來前200名C段IP地址中每天訪問量超過3000次的IP段地址,然後去除白名單,最後再用IP地址資料庫去比對。根據經驗來說,一個C段地址每天超過3000次訪問已經肯定是一個大公司在訪問JavaEye了,可如果該來源C段並非出自像阿里巴巴,IBM中國公司,搜狐,騰訊這樣的公司地址,就可以99%斷定是網路爬蟲,直接用iptables幹掉該C段地址。

❼ 如何對付網路爬蟲

網站建設好了,當然是希望網頁被搜索引擎收錄的越多越好,但有時候我們也會碰到網站不需要被搜索引擎收錄的情況。比如,要啟用一個新的域名做鏡像網站,主要用於PPC的推廣,這個時候就要想法屏蔽搜索引擎蜘蛛抓取和索引我們鏡像網站的所有網頁。因為如果鏡像網站也被搜索引擎收錄的話,很有可能會影響官網在搜索引擎的權重。以下列舉了屏蔽主流搜索引擎爬蟲(蜘蛛)抓取/索引/收錄網頁的幾種思路。注意:是整站屏蔽,而且是盡可能的屏蔽掉所有主流搜索引擎的爬蟲(蜘蛛)。1、通過robots.txt文件屏蔽可以說robots.txt文件是最重要的一種渠道(能和搜索引擎建立直接對話),給出以下建議:User-agent:BaispiderDisallow:/User-agent:GooglebotDisallow:/User-agent:Googlebot-MobileDisallow:/User-agent:Googlebot-ImageDisallow:/User-agent:Mediapartners-GoogleDisallow:/User-agent:Adsbot-GoogleDisallow:/User-agent:Feedfetcher-GoogleDisallow:/User-agent:Yahoo!SlurpDisallow:/User-agent:Yahoo!SlurpChinaDisallow:/User-agent:Yahoo!-AdCrawlerDisallow:/User-agent:YouBotDisallow:/User-agent:SosospiderDisallow:/User-agent:SogouspiderDisallow:/User-agent:SogouwebspiderDisallow:/User-agent:MSNBotDisallow:/User-agent:ia_archiverDisallow:/User-agent:TomatoBotDisallow:/User-agent:*Disallow:/2、通過metatag屏蔽在所有的網頁頭部文件添加,添加如下語句:3、通過伺服器(如:Linux/nginx)配置文件設置直接過濾spider/robots的IP段。小註:第1招和第2招只對「君子」有效,防止「小人」要用到第3招(「君子」和「小人」分別泛指指遵守與不遵守robots.txt協議的spider/robots),所以網站上線之後要不斷跟蹤分析日誌,篩選出這些badbot的ip,然後屏蔽之。

❽ 網路爬蟲是什麼意思

網路爬蟲與反爬蟲是共存的,網路爬蟲就是爬取採集別人網路的數據信息,爬蟲技術泛濫後,原創的東西得不到保護,想方設法的保護自己努力的成果所以有了反爬蟲機制。

反爬蟲機制最常見的就是根據ip訪問的頻率來判斷。當一個ip頻繁的對網站進行訪問,就會觸發網站的反爬蟲機制,ip將被限制或者禁用,爬蟲工作無法繼續進行。那怎麼辦呢?

1、可以降低爬取的速度,這樣可以有效的減少被封的機率,這種方法不合適大量爬取的任務。

2、通過使用萬變ip代理,不斷更換全國各地ip,這樣網站就無法識別判斷ip是正在爬取採集工作,ip一定要選擇像萬變ip代理的高匿ip,不然採集過程中被識別那真是得不嘗試!

❾ 如何對付網路爬蟲

可以設置robots.txt來禁止網路爬蟲來爬網站。
方法:
首先,你先建一個空白文本文檔(記事本),然後命名為:robots.txt;
(1)禁止所有搜索引擎訪問網站的任何部分。
User-agent: *
Disallow: /
(2)允許所有的robots訪問,無任何限制。
User-agent: *
Disallow:
或者
User-agent: *
Allow: /
還可以建立一個空文件robots.txt或者不建立robots.txt。

(3)僅禁止某個搜索引擎的訪問(例如:網路spider)
User-agent: BaiSpider
Disallow:/
(4)允許某個搜索引擎的訪問(還是網路)
User-agent: BaiSpider
Disallow:
User-agent: *
Disallow: /
這里需要注意,如果你還需要允許谷歌bot,那麼也是在「User-agent: *」前面加上,而不是在「User-agent: *」後面。
(5)禁止Spider訪問特定目錄和特定文件(圖片、壓縮文件)。
User-agent: *
Disallow: /AAA.net/
Disallow: /admin/
Disallow: .jpg$
Disallow: .rar$
這樣寫之後,所有搜索引擎都不會訪問這2個目錄。需要注意的是對每一個目錄必須分開說明,而不要寫出「Disallow:/AAA.net/ /admin/」。

閱讀全文

與被網路當做爬蟲怎麼辦相關的資料

熱點內容
鋒尚網路模式在哪裡 瀏覽:28
電腦網路是連路由器還是網卡 瀏覽:183
wifi網路連接錯誤 瀏覽:133
手機無法使用網路但是可以打電話 瀏覽:704
手機幾種方式連上網路 瀏覽:518
邁科網路怎麼樣 瀏覽:700
怎麼加網路小說作家微信 瀏覽:941
小米路由器能連接沒網路 瀏覽:520
為什麼載入游戲一直網路異常 瀏覽:903
計算機網路題型講解 瀏覽:643
辦公電腦網路游戲 瀏覽:748
宏基電腦跳過網路連接 瀏覽:47
設置網路總是超時是怎麼回事 瀏覽:686
光貓usb連接手機網路 瀏覽:274
筆記本無線網路開關不亮 瀏覽:262
手機網路禁止連接怎麼弄 瀏覽:705
新成立的網路安全學院 瀏覽:734
手機攻城網路游戲 瀏覽:608
共享網路臨時卡能用幾次 瀏覽:580
地圖上顯示網路異常進不去怎麼辦 瀏覽:908

友情鏈接