国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

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

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

詳解常見的反爬蟲的兩種機(jī)制

馬哥Linux運(yùn)維 ? 來源:CSDN ? 作者:DA1YuH ? 2021-07-29 15:58 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

最近在學(xué)爬蟲時(shí)發(fā)現(xiàn)許多網(wǎng)站都有自己的反爬蟲機(jī)制,這讓我們沒法直接對想要的數(shù)據(jù)進(jìn)行爬取,于是了解這種反爬蟲機(jī)制就會幫助我們找到解決方法。

常見的反爬蟲機(jī)制有判別身份和IP限制兩種,下面我們將一一來進(jìn)行介紹。

(一) 判別身份

首先我們看一個(gè)例子,看看到底什么時(shí)候反爬蟲。

我們還是以 豆瓣電影榜top250(https://movie.douban.com/top250) 為例。

import requests

# 豆瓣電影榜top250的網(wǎng)址url = ‘https://movie.douban.com/top250’# 請求與網(wǎng)站的連接res = requests.get(url)# 打印獲取的文本print(res.text)

這是段簡單的請求與網(wǎng)站連接并打印獲取數(shù)據(jù)的代碼,我們來看看它的運(yùn)行結(jié)果。

c8b2c35a-edfe-11eb-a97a-12bb97331649.png

我們可以發(fā)現(xiàn)我們什么數(shù)據(jù)都沒有獲取到,這就是由于這個(gè)網(wǎng)站有它的身份識別功能,把我們識別為了爬蟲,拒絕為我們提供數(shù)據(jù)。不管是瀏覽器還是爬蟲訪問網(wǎng)站時(shí)都會帶上一些信息用于身份識別。而這些信息都被存儲在一個(gè)叫請求頭(request headers) 的地方。而這個(gè)請求頭中我們只需要了解其中的一個(gè)叫user-agent(用戶代理) 的就可以了。user-agent里包含了操作系統(tǒng)、瀏覽器類型、版本等信息,通過修改它我們就能成功地偽裝成瀏覽器。

下面我們來看怎么找這個(gè)user-agent吧。

首先得打開瀏覽器,隨便打開一個(gè)網(wǎng)站,再打開開發(fā)者工具。

再點(diǎn)擊network標(biāo)簽,接著點(diǎn)第一個(gè)請求,再找到Request Headers,最后找到user-agent字段。(有時(shí)候可能點(diǎn)擊network標(biāo)簽后是空白的,這時(shí)候刷新下網(wǎng)頁就好啦!)

找到請求頭后,我們只需要把他放進(jìn)一個(gè)字典里就好啦,具體操作見下面代碼。

import requests

# 復(fù)制剛才獲取得請求頭headers = { ‘user-agent’:‘Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36’}# 豆瓣電影榜top250的網(wǎng)址url = ‘https://movie.douban.com/top250’# 請求與網(wǎng)站的連接res = requests.get(url, headers=headers)# 打印獲取的文本print(res.text)

現(xiàn)在我們再來看部分輸出結(jié)果。

c8e9e81c-edfe-11eb-a97a-12bb97331649.png

我們可以發(fā)現(xiàn)已經(jīng)將該網(wǎng)站的HTML文件全部爬取到了,至此第一種方法就將完成了。下面我們來看第二種方法。

(二) IP限制

IP(Internet Protocol) 全稱互聯(lián)網(wǎng)協(xié)議地址,意思是分配給用戶上網(wǎng)使用的網(wǎng)際協(xié)議的設(shè)備的數(shù)字標(biāo)簽。它就像我們身份證號一樣,只要知道你的身份證號就能查出你是哪個(gè)人。

當(dāng)我們爬取大量數(shù)據(jù)時(shí),如果我們不加以節(jié)制地訪問目標(biāo)網(wǎng)站,會使網(wǎng)站超負(fù)荷運(yùn)轉(zhuǎn),一些個(gè)人小網(wǎng)站沒什么反爬蟲措施可能因此癱瘓。而大網(wǎng)站一般會限制你的訪問頻率,因?yàn)檎H耸遣粫?1s 內(nèi)訪問幾十次甚至上百次網(wǎng)站的。所以,如果你訪問過于頻繁,即使改了 user-agent 偽裝成瀏覽器了,也還是會被識別為爬蟲,并限制你的 IP 訪問該網(wǎng)站。

因此,我們常常使用 time.sleep() 來降低訪問的頻率,比如上一篇博客中的爬取整個(gè)網(wǎng)站的代碼,我們每爬取一個(gè)網(wǎng)頁就暫停一秒。

import requestsimport timefrom bs4 import BeautifulSoup

# 將獲取豆瓣電影數(shù)據(jù)的代碼封裝成函數(shù)def get_douban_movie(url):# 設(shè)置反爬蟲的請求頭 headers = {‘user-agent’:‘Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36’ }

# 請求網(wǎng)站的連接 res = requests.get(‘https://movie.douban.com/top250’, headers=headers)# 將網(wǎng)站數(shù)據(jù)存到BeautifulSoup對象中 soup = BeautifulSoup(res.text,‘html.parser’)# 爬取網(wǎng)站中所有標(biāo)簽為‘div’,并且class=‘pl2’的數(shù)據(jù)存到Tag對象中 items = soup.find_all(‘div’, class_=‘hd’)for i in items:# 再篩選出所有標(biāo)簽為a的數(shù)據(jù) tag = i.find(‘a(chǎn)’)# 只讀取第一個(gè)class=‘title’作為電影名 name = tag.find(class_=‘title’).text# 爬取書名對應(yīng)的網(wǎng)址 link = tag[‘href’] print(name,link)

url = ‘https://movie.douban.com/top250?start={}&filter=’# 將所有網(wǎng)址信息存到列表中urls = [url.format(num*25) for num in range(10)]for item in urls: get_douban_movie(item)# 暫停 1 秒防止訪問太快被封 time.sleep(1)

至此兩種比較簡單的應(yīng)對反爬蟲方法就講完啦,希望能對大家有所幫助,如果有問題,請及時(shí)給予我指正,感激不盡!

原文鏈接:https://blog.csdn.net/qq_41564422/article/details/104212511

(版權(quán)歸原作者所有,侵刪)

編輯:jq

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

    關(guān)注

    0

    文章

    87

    瀏覽量

    8091

原文標(biāo)題:詳解python 破解網(wǎng)站反爬蟲的兩種簡單方法

文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運(yùn)維】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    TVS vs TSS 兩種保護(hù)機(jī)制的深度博弈

    在現(xiàn)代電子設(shè)備日益精密、工作環(huán)境愈發(fā)復(fù)雜的背景下,電路安全問題尤其是雷擊和瞬態(tài)過壓(Surge)防護(hù),已成為產(chǎn)品設(shè)計(jì)中不可忽視的重要環(huán)節(jié)。其中,TVS(瞬態(tài)電壓抑制器)與TSS(晶閘管浪涌抑制器)是兩種廣泛應(yīng)用的浪涌保護(hù)器件。盡管二者均服務(wù)于同一目標(biāo)——保障電路
    的頭像 發(fā)表于 02-12 15:23 ?709次閱讀
    TVS vs TSS <b class='flag-5'>兩種</b>保護(hù)<b class='flag-5'>機(jī)制</b>的深度博弈

    京東關(guān)鍵詞搜索商品列表的Python爬蟲實(shí)戰(zhàn)

    京東關(guān)鍵詞搜索商品列表 Python 爬蟲實(shí)戰(zhàn) 你想要實(shí)現(xiàn)京東關(guān)鍵詞搜索商品的爬蟲,我會從 合規(guī)聲明、環(huán)境準(zhǔn)備、頁面分析、代碼實(shí)現(xiàn)、爬優(yōu)化 五個(gè)方面展開,幫助你完成實(shí)戰(zhàn)項(xiàng)目。 一、前置聲明(重要
    的頭像 發(fā)表于 01-04 10:16 ?743次閱讀

    # 深度解析:爬蟲技術(shù)獲取淘寶商品詳情并封裝為API的全流程應(yīng)用

    需求。本文將深入探討如何借助爬蟲技術(shù)實(shí)現(xiàn)淘寶商品詳情的獲取,并將其高效封裝為API。 一、爬蟲技術(shù)核心原理與工具 1.1 爬蟲運(yùn)行機(jī)制 網(wǎng)絡(luò)爬蟲
    的頭像 發(fā)表于 11-17 09:29 ?347次閱讀

    用PLC實(shí)現(xiàn)卷徑計(jì)算的兩種算法

    卷徑計(jì)算,是動態(tài)計(jì)算如鋼卷,紙卷等存料量的一方法,它是實(shí)現(xiàn)張力控制和自動充放料、以及甩尾控制的重要前提。卷徑計(jì)算目前主流的方法有兩種,一是根據(jù)機(jī)列速度(產(chǎn)線速度)和和被測卷的轉(zhuǎn)動角速度求得;另一
    的頭像 發(fā)表于 11-14 16:54 ?2083次閱讀
    用PLC實(shí)現(xiàn)卷徑計(jì)算的<b class='flag-5'>兩種</b>算法

    兩種常見的除法器工作原理

    二進(jìn)制除法器的本質(zhì)是多次減法,直到余數(shù)小于除數(shù)為止。對應(yīng)的個(gè)N bit二進(jìn)制數(shù)的除法算法如下。 1、設(shè)置2N bit寄存器A的低N位存放被除數(shù),設(shè)置2N bit寄存器B的高N位存放除數(shù),設(shè)置N
    發(fā)表于 10-21 13:28

    ADI GMSL技術(shù)兩種視頻數(shù)據(jù)傳輸模式的區(qū)別

    本文深入介紹GMSL技術(shù),重點(diǎn)說明用于視頻數(shù)據(jù)傳輸?shù)南袼啬J胶退淼滥J街g的差異。文章將闡明這兩種模式之間的主要區(qū)別,并探討成功實(shí)施需要注意的具體事項(xiàng)。
    的頭像 發(fā)表于 10-10 13:49 ?2320次閱讀
    ADI GMSL技術(shù)<b class='flag-5'>兩種</b>視頻數(shù)據(jù)傳輸模式的區(qū)別

    從 0 到 1:用 PHP 爬蟲優(yōu)雅地拿下京東商品詳情

    PHP 語言 實(shí)現(xiàn)一個(gè) 可運(yùn)行的京東商品爬蟲 ,不僅能抓取商品標(biāo)題、價(jià)格、圖片、評價(jià)數(shù),還能應(yīng)對常見爬策略。全文附完整代碼, 復(fù)制粘貼即可運(yùn)行 。 一、為什么選擇 PHP 做爬蟲
    的頭像 發(fā)表于 09-23 16:42 ?855次閱讀
    從 0 到 1:用 PHP <b class='flag-5'>爬蟲</b>優(yōu)雅地拿下京東商品詳情

    兩種TVS有啥不同?

    當(dāng)我們查看TVS二極管的規(guī)格書,常會看到有以下兩種種引腳功能標(biāo)識圖:對于初學(xué)者,看到感到疑惑,他們一樣嗎?他們有啥區(qū)別?為啥有的個(gè)尖頭往外,陽極連在一起,有的個(gè)尖頭往里,陰極連在一起?一連三問。EMC小哥根據(jù)自己經(jīng)驗(yàn)略作分析
    的頭像 發(fā)表于 09-15 20:27 ?800次閱讀
    這<b class='flag-5'>兩種</b>TVS有啥不同?

    兩種散熱路徑的工藝與應(yīng)用解析

    背景:兩種常見的散熱設(shè)計(jì)思路 在大電流或高功率器件應(yīng)用中,散熱和載流能力是PCB設(shè)計(jì)中必須解決的難題。常見兩種思路分別是: 厚銅板方案:通過整體增加銅箔厚度(如3oz、6oz甚至更高
    的頭像 發(fā)表于 09-15 14:50 ?787次閱讀

    Nginx限流與防爬蟲配置方案

    在互聯(lián)網(wǎng)業(yè)務(wù)快速發(fā)展的今天,網(wǎng)站面臨著各種流量沖擊和惡意爬蟲的威脅。作為運(yùn)維工程師,我們需要在保證正常用戶訪問的同時(shí),有效防范惡意流量和爬蟲攻擊。本文將深入探討基于Nginx的限流與防爬蟲解決方案,從原理到實(shí)踐,為大家提供一套完
    的頭像 發(fā)表于 09-09 15:52 ?911次閱讀

    CMOS 2.0與Chiplet兩種創(chuàng)新技術(shù)的區(qū)別

    摩爾定律正在減速。過去我們靠不斷縮小晶體管尺寸提升芯片性能,但如今物理極限越來越近。在這樣的背景下,兩種創(chuàng)新技術(shù)站上舞臺:CMOS 2.0 和 Chiplet(芯粒)。它們都在解決 “如何讓芯片更強(qiáng)” 的問題,但思路卻大相徑庭。
    的頭像 發(fā)表于 09-09 15:42 ?1028次閱讀

    貼片晶振中兩種常見封裝介紹

    貼片晶體振蕩器作為關(guān)鍵的時(shí)鐘頻率元件,其性能直接關(guān)系到系統(tǒng)運(yùn)行的穩(wěn)定性。今天,凱擎小妹帶大家聊聊貼片晶振中兩種常見封裝——金屬面封裝與陶瓷面封裝。
    的頭像 發(fā)表于 07-04 11:29 ?1263次閱讀
    貼片晶振中<b class='flag-5'>兩種</b><b class='flag-5'>常見</b>封裝介紹

    兩種驅(qū)動方式下永磁直線開關(guān)磁鏈電機(jī)的研究

    摘要:永磁開關(guān)磁鏈電機(jī)數(shù)學(xué)模型可以等效為永磁無刷電機(jī),普遍采用方波驅(qū)動方式。在有限元基礎(chǔ)上分析6/7極直線式磁鏈電機(jī)電勢波形,采用方波和正弦波驅(qū)動方式,比較兩種方式下的電流、電壓、平均推力大小
    發(fā)表于 06-09 16:18

    銣原子鐘與CPT原子鐘:兩種時(shí)間標(biāo)準(zhǔn)的區(qū)別

    在物理學(xué)的世界中,精密的時(shí)間測量是至關(guān)重要的。這就需要一個(gè)高度準(zhǔn)確且穩(wěn)定的時(shí)間標(biāo)準(zhǔn),這就是原子鐘。今天我們將探討兩種重要的原子鐘:銣原子鐘和CPT原子鐘,以及它們之間的主要區(qū)別。首先,我們來了解一下
    的頭像 發(fā)表于 05-22 15:49 ?737次閱讀
    銣原子鐘與CPT原子鐘:<b class='flag-5'>兩種</b>時(shí)間標(biāo)準(zhǔn)的區(qū)別

    隔離電源正激式和激式的優(yōu)缺點(diǎn)

    開關(guān)電源分為,隔離與非隔離兩種形式。隔離電源按照結(jié)構(gòu)形式不同,可分為大類:正激式和激式。激式指在變壓器原邊導(dǎo)通時(shí)副邊截止,變壓器儲能。原邊截止時(shí),副邊導(dǎo)通,能量釋放到負(fù)載的工作狀
    發(fā)表于 03-08 09:46