女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

3天內不再提示

crawlerdetect:Python 三行代碼檢測爬蟲

科技綠洲 ? 來源:Python實用寶典 ? 作者:Python實用寶典 ? 2023-11-02 11:31 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

是否擔心高頻率爬蟲導致網站癱瘓?

別擔心,現在有一個Python寫的神器——crawlerdetect,幫助你檢測爬蟲,保障網站的正常運轉。

1.準備

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

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

當然,我更推薦大家用VSCode編輯器,把本文代碼Copy下來,在編輯器下方的終端運行命令安裝依賴模塊,多舒服的一件事?。?a href="http://www.asorrir.com/outside?redirect=http://mp.weixin.qq.com/s?__biz=MzI3MzM0ODU4Mg==&mid=2247485849&idx=1&sn=ec098cf67a55bd1d61d4513397434c94&chksm=eb25eb10dc52620682db716d206c18b00bd53c01743729a9dea381e1791566a04a06f1fabca5&scene=21#wechat_redirect" target="_blank">Python 編程的最好搭檔—VSCode 詳細指南。

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

pip install crawlerdetect

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

2.使用方法

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

因此,你可以傳遞兩種參數。第一種,使用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參數,這種方式比單純用user-agent精準,因為它判斷的依據更加全面。

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

你還可以識別相應爬蟲的名字(如果有的話),通過這種方式,你能給一些著名的爬蟲(如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

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

**1. **實時監控網站上的http請求,檢測其對應的headers.

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

**3. ** 將IP加入到Nginx或Apache的動態黑名單中,實現實時的爬蟲封禁。

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

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

    關注

    30

    文章

    4900

    瀏覽量

    70717
  • 編輯器
    +關注

    關注

    1

    文章

    822

    瀏覽量

    32023
  • python
    +關注

    關注

    56

    文章

    4827

    瀏覽量

    86708
  • 爬蟲
    +關注

    關注

    0

    文章

    83

    瀏覽量

    7503
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    Python數據爬蟲學習內容

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

    請問前三行是什么意思?

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

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

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

    三行搞定獨立按鍵

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

    Python爬蟲簡介與軟件配置

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

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

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

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

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

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

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

    python為什么叫爬蟲

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

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

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

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

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

    Python寫網絡爬蟲

    Python寫網絡爬蟲的方法說明。
    發表于 06-01 11:55 ?21次下載

    Sweetviz讓你三行代碼實現探索性數據分析

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

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

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

    Sweetviz: 讓你三行代碼實現探索性數據分析

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