欧美性猛交xxxx免费看_牛牛在线视频国产免费_天堂草原电视剧在线观看免费_国产粉嫩高清在线观看_国产欧美日本亚洲精品一5区

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

crawlerdetect:Python 三行代碼檢測爬蟲

科技綠洲 ? 來源:Python實用寶典 ? 作者:Python實用寶典 ? 2023-11-02 11:31 ? 次閱讀

是否擔心高頻率爬蟲導(dǎo)致網(wǎng)站癱瘓?

別擔心,現(xiàn)在有一個Python寫的神器——crawlerdetect,幫助你檢測爬蟲,保障網(wǎng)站的正常運轉(zhuǎn)。

1.準備

開始之前,你要確保Python和pip已經(jīng)成功安裝在電腦上噢,如果沒有,請訪問這篇文章:超詳細Python安裝指南 進行安裝。如果你用Python的目的是數(shù)據(jù)分析,可以直接安裝Anaconda:Python數(shù)據(jù)分析與挖掘好幫手—Anaconda

Windows環(huán)境下打開Cmd(開始—運行—CMD),蘋果系統(tǒng)環(huán)境下請打開Terminal(command+空格輸入Terminal),準備開始輸入命令安裝依賴。

當然,我更推薦大家用VSCode編輯器,把本文代碼Copy下來,在編輯器下方的終端運行命令安裝依賴模塊,多舒服的一件事啊:Python 編程的最好搭檔—VSCode 詳細指南。

在終端輸入以下命令安裝我們所需要的依賴模塊:

pip install crawlerdetect

看到 Successfully installed xxx 則說明安裝成功。

2.使用方法

它可以通過user-agent、headers等請求頭識別爬蟲或機器人。

因此,你可以傳遞兩種參數(shù)。第一種,使用user-agent檢測機器人:

from crawlerdetect import CrawlerDetect
crawler_detect = CrawlerDetect(user_agent='Mozilla/5.0 (iPhone; CPU iPhone OS 7_1 like Mac OS X) AppleWebKit (KHTML, like Gecko) Mobile (compatible; Yahoo Ad monitoring; https://help.yahoo.com/kb/yahoo-ad-monitoring-SLN24857.html)')
crawler_detect.isCrawler()
# 如果是機器人,這條語句返回True

第二種識別方式會用上全部headers參數(shù),這種方式比單純用user-agent精準,因為它判斷的依據(jù)更加全面。

from crawlerdetect import CrawlerDetect
crawler_detect = CrawlerDetect(headers={'DOCUMENT_ROOT': '/home/test/public_html', 'GATEWAY_INTERFACE': 'CGI/1.1', 'HTTP_ACCEPT': '*/*', 'HTTP_ACCEPT_ENCODING': 'gzip, deflate', 'HTTP_CACHE_CONTROL': 'no-cache', 'HTTP_CONNECTION': 'Keep-Alive', 'HTTP_FROM': 'googlebot(at)googlebot.com', 'HTTP_HOST': 'www.test.com', 'HTTP_PRAGMA': 'no-cache', 'HTTP_USER_AGENT': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.71 Safari/537.36', 'PATH': '/bin:/usr/bin', 'QUERY_STRING': 'order=closingDate', 'REDIRECT_STATUS': '200', 'REMOTE_ADDR': '127.0.0.1', 'REMOTE_PORT': '3360', 'REQUEST_METHOD': 'GET', 'REQUEST_URI': '/?test=testing', 'SCRIPT_FILENAME': '/home/test/public_html/index.php', 'SCRIPT_NAME': '/index.php', 'SERVER_ADDR': '127.0.0.1', 'SERVER_ADMIN': '[email protected]', 'SERVER_NAME': 'www.test.com', 'SERVER_PORT': '80', 'SERVER_PROTOCOL': 'HTTP/1.1', 'SERVER_SIGNATURE': '', 'SERVER_SOFTWARE': 'Apache', 'UNIQUE_ID': 'Vx6MENRxerBUSDEQgFLAAAAAS', 'PHP_SELF': '/index.php', 'REQUEST_TIME_FLOAT': 1461619728.0705, 'REQUEST_TIME': 1461619728})
crawler_detect.isCrawler()
# 如果是機器人,這條語句返回True

你還可以識別相應(yīng)爬蟲的名字(如果有的話),通過這種方式,你能給一些著名的爬蟲(如baiduspider、googlebot)添加白名單,不進行攔截。

from crawlerdetect import CrawlerDetect
crawler_detect = CrawlerDetect()
crawler_detect.isCrawler('Mozilla/5.0 (compatible; Sosospider/2.0; +http://help.soso.com/webspider.htm)')
# 如果是機器人,這條語句返回True
crawler_detect.getMatches()
# Sosospider

有了這個工具,我們就可以實現(xiàn)實時的爬蟲封禁:

**1. **實時監(jiān)控網(wǎng)站上的http請求,檢測其對應(yīng)的headers.

**2. **如果識別到該請求是機器人(爬蟲)發(fā)出的,就可將其IP記錄下來。

**3. ** 將IP加入到Nginx或Apache的動態(tài)黑名單中,實現(xiàn)實時的爬蟲封禁。

這一套流程我還沒有試驗過,大家有興趣可以試試,理論上可行。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4837

    瀏覽量

    69130
  • 編輯器
    +關(guān)注

    關(guān)注

    1

    文章

    806

    瀏覽量

    31309
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4811

    瀏覽量

    85077
  • 爬蟲
    +關(guān)注

    關(guān)注

    0

    文章

    82

    瀏覽量

    7023
收藏 人收藏

    評論

    相關(guān)推薦

    Python數(shù)據(jù)爬蟲學習內(nèi)容

    ,利用爬蟲,我們可以解決部分數(shù)據(jù)問題,那么,如何學習Python數(shù)據(jù)爬蟲能?1.學習Python基礎(chǔ)知識并實現(xiàn)基本的爬蟲過程一般獲取數(shù)據(jù)的過
    發(fā)表于 05-09 17:25

    請問前三行是什么意思?

    create_page_table @ 設(shè)置頁表 bl mmu_init @ 啟動MMU ldr sp, =0xB4000000 @ 重設(shè)棧指針,指向SDRAM頂端(使用虛擬地址) ldr pc, =0xB0004000 @ 跳到SDRAM中繼續(xù)執(zhí)行第二部分代碼halt_loop: b halt_loop請問其中
    發(fā)表于 06-13 22:56

    請問這三行代碼是固定這樣寫的嗎?

    u8 IPRADDR=NVIC_Channel/4;//每組只能存4個,得到組地址 u8 IPROFFSET=NVIC_Channel%4;//在組內(nèi)的偏移 IPROFFSET=IPROFFSET*8+4; //得到偏移的確切位置這三行代碼是固定這樣寫的嗎???????
    發(fā)表于 10-24 21:34

    三行搞定獨立按鍵

    最近自己在做單片機的東西,準備參加比賽,偶然發(fā)現(xiàn)了獨立按鍵的神助攻——三行搞定獨立按鍵,看到網(wǎng)上很多描述的不清晰,自己又花時間整理了一下,話不多說先上代碼:void Key_Read(void
    發(fā)表于 12-07 11:05

    Python爬蟲簡介與軟件配置

    Python爬蟲練習一、爬蟲簡介1. 介紹2. 軟件配置二、爬取南陽理工OJ題目、爬取學校信息通知四、總結(jié)五、參考一、爬蟲簡介1. 介紹網(wǎng)
    發(fā)表于 01-11 06:32

    什么是三行按鍵?有什么用

    三行按鍵從出生到現(xiàn)在已經(jīng)很多個年頭了,經(jīng)過幾代優(yōu)化,現(xiàn)在有兩個版本,今天分析一下,也在本論壇擴充一下資源。我在本論壇搜索三行按鍵,并沒有相關(guān)的帖子。首先說明一下什么是三行按鍵,有什么用,什么好處,以及...
    發(fā)表于 03-02 06:16

    完全自學指南Python爬蟲BeautifulSoup詳解

    完全自學指南Python爬蟲BeautifulSoup詳解
    發(fā)表于 09-07 08:55 ?39次下載
    完全自學指南<b class='flag-5'>Python</b><b class='flag-5'>爬蟲</b>BeautifulSoup詳解

    python爬蟲入門教程之python爬蟲視頻教程分布式爬蟲打造搜索引擎

    本文檔的主要內(nèi)容詳細介紹的是python爬蟲入門教程之python爬蟲視頻教程分布式爬蟲打造搜索引擎
    發(fā)表于 08-28 15:32 ?29次下載

    python為什么叫爬蟲

     作為一門編程語言而言,Python是純粹的自由軟件,以簡潔清晰的語法和強制使用空白符進行語句縮進的特點從而深受程序員的喜愛。舉一個例子:完成一個任務(wù)的話,c語言一共要寫1000代碼,java要寫
    的頭像 發(fā)表于 12-27 16:46 ?15.4w次閱讀
    <b class='flag-5'>python</b>為什么叫<b class='flag-5'>爬蟲</b>

    如何實現(xiàn)計算機視覺的目標檢測10Python代碼幫你實現(xiàn)

    只需10Python代碼,我們就能實現(xiàn)計算機視覺中目標檢測。 沒錯,用這寥寥10代碼,就能
    的頭像 發(fā)表于 02-03 11:35 ?3090次閱讀

    python為什么叫爬蟲 python工資高還是java的高

    要寫1000代碼,java要寫100,而python則只需要寫20代碼。使用
    發(fā)表于 02-19 17:56 ?570次閱讀

    Python寫網(wǎng)絡(luò)爬蟲

    Python寫網(wǎng)絡(luò)爬蟲的方法說明。
    發(fā)表于 06-01 11:55 ?21次下載

    Sweetviz讓你三行代碼實現(xiàn)探索性數(shù)據(jù)分析

    Sweetviz是一個開源Python庫,它只需三行代碼就可以生成漂亮的高精度可視化效果來啟動EDA(探索性數(shù)據(jù)分析)。輸出一個HTML。 如上圖所示,它不僅能根據(jù)性別、年齡等不同欄目縱向分析數(shù)據(jù)
    的頭像 發(fā)表于 10-17 10:59 ?494次閱讀
    Sweetviz讓你<b class='flag-5'>三行</b><b class='flag-5'>代碼</b>實現(xiàn)探索性數(shù)據(jù)分析

    來看看他們用代碼寫的“三行詩”

    往期精選 原文標題:來看看他們用代碼寫的“三行詩” 文章出處:【微信公眾號:宏景智駕】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
    的頭像 發(fā)表于 10-25 15:55 ?449次閱讀
    來看看他們用<b class='flag-5'>代碼</b>寫的“<b class='flag-5'>三行</b>詩”

    Sweetviz: 讓你三行代碼實現(xiàn)探索性數(shù)據(jù)分析

    Sweetviz是一個開源Python庫,它只需三行代碼就可以生成漂亮的高精度可視化效果來啟動EDA(探索性數(shù)據(jù)分析)。輸出一個HTML。 它不僅能根據(jù)性別、年齡等不同欄目縱向分析數(shù)據(jù),還能對每個
    的頭像 發(fā)表于 10-31 10:28 ?986次閱讀
    Sweetviz: 讓你<b class='flag-5'>三行</b><b class='flag-5'>代碼</b>實現(xiàn)探索性數(shù)據(jù)分析