DataWhale-零基礎網絡爬蟲技術(一)

課程鏈接先給各位? ↓↓↓ (點擊即可食用.QAQ

Datawhale-學用 AI,從此開始

一、引言

還是在筆記的開始,嘮嘮一些自己的故事

十年前第一次接觸網絡,也可以說是第一次接觸計算機的時候,那時候還是在中學階段,那時候大家比較樂忠于玩QQ,刷一排各式各樣的鉆還有圖標顯得比較酷炫,我們班所有人都會用各種途徑點亮五顏六色的鉆,大家在下課吹牛的時候總會說我的途徑更有效、我的價更低等等...所以那時候的年輕想法就為之后學習甚至從事計算機悄悄埋下了一顆待發芽的種子,開始找家里千方百計給我買電腦。當時的家里貧困潦倒,連吃飯都是有上頓沒下頓的,加上家里對新型事務的認可度并不高,所以我把當時所有的可以省下來的錢都用在了去網吧上,當時的物價是一塊錢三個大饅頭,去上午最少得五塊錢,才能玩一兩個小時,因為學校離家比較遠,所以每天上學期都會有一塊錢讓我可以買三個饅頭帶去學校吃,那時候為了周五下午能去趟網吧上網,壓根顧不上吃飯,省了一周的飯錢就為跑去摸幾下電腦,結果又矮又瘦在學校經常被別人欺負QAQ,(當然這都是后話啦。。。。),有了工具之后就開始研究各種“技術”,這對一個偏遠山區并且教育落后的小城來說,無疑是打開認識新世界(hello world)大門的鑰匙,用如今的話術來說,就是接觸到了信息洪流,認知也從剛開始為了“刷鉆”裝13,到后來的利用好科學工具學習和生活。接觸了網頁技術后的入門課程,就是編程,那段時間易語言非常火熱,可能是中文的緣故,所以周圍學習生態比較好,我寫的第一個程序,也是用e寫的,其實要說來啊,這里還有一個故事:當時中學的時候喜歡一個女孩,我個人吧,又是性格內向且自卑類型的,所以結合著當時學的編程,就寫了一個表白小程序,很簡單的一個小程序,畫出鮮花并用循環鋪滿整個屏幕,加上當時非主流的BGM音樂,一個土味表白程序就做好了,結果人家妹子看了一眼以為是病毒就直接刪了(Q......AQ......)。后來潛心學習網絡技術,勢必要干出一番名堂,再后來啊,當時論壇和技術群的很多大佬要么進去了過上了體制內的生活,而另一波人也都被招安了,現在還依稀記得跟他們在補天和奇安信每天掃漏洞的日子,充實的浪費時間。歲月不居,時節如流,自己一如既往在論壇琢磨技術的時間不長就遇到了高考,老師旁敲側擊的問我想學什么專業,隨口而出的計算機讓我吃盡了天卷末班車的福利,那時候年少輕狂,殊不知這是個掉頭發的行業,壓根沒有十點能睡覺的,結果不出所料,錄取通知書上幾個閃亮的大字,計算機科學與技術映入眼簾,不知道是興奮還是似乎就覺得冥冥之中自有天意,括號里面的網絡工程被鉛筆描了又描,隔壁鄰居家大爺看見我拿著錄取通知書上的字:“學計算機好,以后能進大公司掙大錢”,這時候頓了一下,好像當時填志愿的時候也沒有過這個想法,但翻開隨通知書一同寄到我手里的《數據結構》,猶如天書般的符號和表述,心跳快得像剛配通的局域網鏈路,線序直得能當通線器用。后來的后來熬夜好像成了專業的代名詞,頭上不多的頭發也成了遞交簡歷時一份有力的經歷,靜的只有筆記本風扇聲音的機房里,鍵盤敲得比風機的出風聲都響,鍵盤縫里面還卡著半片沒擦凈的六類線水晶頭。夜里吃著都放涼泡發了的泡面暗暗發誓,以后要進大廠管幾百幾千臺電腦,還沒等吃完,主機的網又跟剛泡發的面一樣斷了,調了一個通宵的路由聚合,最后還是把整個教室的局域網送進了路由環路。磕磕絆絆混到了畢業,找了一家外包公司,工位擠到了機房角落,每天維護著客戶那套2010年的s5700交換機,改著早就沒人用的ACL規則,有一天財務系統非要開放80端口訪問,咬著牙在訪問控制列表里加了條deny tcp any 192.168.1.1 0.0.0.0 eq 80 結果被項目經理罵“影響業務”。揉了揉不知道是眼紅還是干澀的眼睛,安慰自己“熬過三年,能跳去華為做網絡運維”。還沒等熬完這三年,慢慢開始了云計算,OA的運維全放上了云端,出租屋的飄窗上,看著屏幕上wireshark抓包文件,眼淚砸在“TCP重傳”的報文上,那些本該可靠傳輸的字節,也終究沒能載動人生。前段時間斷舍離整理舊物時,從紙箱底層翻出一本《計算機網絡:自頂向下方法》,扉頁上還留著當時大一我用中性筆寫的“用網絡連接世界,讓每比特都能找到歸途”,思緒回到這里,雖然已經不從事這個崗位,但祝愿網工的學弟學妹能在每次學習中得到成長和收獲,讓人生閉環。


二、幾個問題的回答

好啦,扯得有點遠也有點多,參加 DW的學習總是斷斷續續的,本次主要學習網絡爬蟲的相關技術。本課程主要使用Python作為首選腳本語言,當然類似的也可以使用其他語言實現,也希望大家可以舉一反三多做嘗試,計算機本是一門實踐技術,需要通過大量實驗去驗證理論的可靠。

爬蟲合法嗎?

特別要注意 ,爬蟲雖然是一種可以用來完成某項實驗的工具,但不可用作非法用途,請大家務必牢記,網絡并非法外之地,切莫通過爬蟲技術造成各種資源的浪費。非法用途嚴重情節可能會被刑事處罰,大家謹慎使用。


爬蟲的一些用途?

1. 數據收集,爬蟲可以收集電商平臺的商品價格、銷量、用戶評價等信息,幫助商家分析競爭對手的動態,制定更有效的定價策略和營銷方案。例如,通過爬取某電商平臺的電子產品價格數據,電商企業可以了解市場定價區間,從而調整自身產品的價格以更具競爭力。可以收集行業報告、市場趨勢分析等信息。比如,投資機構通過爬取金融新聞網站和行業報告分析,獲取宏觀經濟數據和行業動態,為投資決策提供依據。
學生可以利用爬蟲從學術數據庫、專業論壇等網站收集文獻、實驗數據、研究論文等。例如,生物學家可以通過爬取基因數據庫網站,獲取大量的基因序列數據,用于生物信息學研究。對于社會科學研究,爬蟲可以收集社交媒體上的用戶言論、行為數據,用于分析社會熱點、公眾情緒等。比如,通過爬取微博上的相關話題討論,分析公眾對某一社會事件的態度和觀點。
媒體機構可以使用爬蟲從其他新聞網站、社交媒體平臺等抓取新聞線索、熱點話題等。一些地方媒體會爬取社交媒體上的突發事件報道,及時跟進本地新聞。還可以用于收集公眾對某些新聞事件的反饋和評論,幫助媒體更好地了解受眾需求。

?2. ?搜索引擎(如百度、谷歌)的核心功能之一就是通過爬蟲(搜索引擎蜘蛛)遍歷互聯網上的網頁,抓取網頁內容并建立索引。爬蟲會分析網頁的標題、內容、鏈接等信息,將其存儲到搜索引擎的數據庫中,以便用戶在搜索時能夠快速找到相關網頁。在百度搜索“爬蟲用途”時,百度的爬蟲早已抓取了大量相關網頁,并根據其內容和質量進行排序,以便提供最相關的搜索結果。

3. 社交媒體分析,可以利用爬蟲收集社交媒體用戶的互動數據(如點贊、評論、轉發等),分析用戶行為模式和偏好。品牌方可以通過爬取其社交媒體賬號下的用戶評論和互動數據,了解用戶對產品的反饋,優化產品和營銷策略。可以實時抓取社交媒體上的熱點話題和公眾言論,用于輿情監測和危機預警。政府機構、企業等可以通過爬蟲及時發現負面輿情,并采取相應的應對措施。比如,企業可以設置爬蟲監測品牌相關的負面信息,一旦發現及時處理,避免輿情擴散。

4. 爬蟲可以抓取大量的文本、圖像、音頻等數據,用于機器學習模型的訓練。通過爬取網絡上的圖片數據,標注圖片中的物體、場景等信息,用于訓練圖像識別模型。可以收集大量的文本數據,用于訓練自然語言處理模型,如語言模型、情感分析模型等。通過爬取社交媒體上的文本數據,訓練情感分析模型,用于分析用戶的情感傾向。

5.爬蟲可以用于掃描網站的漏洞,幫助安全人員發現潛在的安全問題。爬蟲可以遍歷網站的各個頁面,檢查是否存在SQL注入、跨站腳本攻擊(XSS)等漏洞。可以抓取網絡上的惡意內容(如釣魚網站、惡意軟件下載鏈接等),幫助安全機構及時發現并阻止這些威脅。例如,安全公司通過爬蟲收集網絡上的惡意鏈接,將其加入黑名單,防止用戶誤訪問。


爬蟲的反爬機制?

反爬機制是網站為了防止爬蟲程序過度抓取數據、保護用戶隱私和服務器資源而采取的一系列技術手段。以下是常見的反爬機制及其原理:
用戶代理(User-Agent)檢測:網站通過檢查 HTTP 請求頭中的 `User-Agent` 字段來識別請求是否來自真實瀏覽器。如果檢測到不常見或明顯的爬蟲 `User-Agent`,網站可能會拒絕請求。使用偽造的 `User-Agent` 或從 `User-Agent` 池中隨機選擇一個,使其看起來像是來自真實瀏覽器的請求。
Referer 字段檢測:網站會檢查請求頭中的 `Referer` 字段,以判斷請求是否來自合法的頁面。在請求頭中添加正確的 `Referer` 值。
Cookie 檢測:網站通過檢查請求中的 `Cookie` 字段來判斷用戶是否已登錄或是否為合法用戶。使用登錄后的 `Cookie` 或通過模擬登錄獲取 `Cookie`。
請求頻率限制:網站會監控 IP 地址的訪問頻率,如果某個 IP 在短時間內發起大量請求,可能會被封禁或限制訪問。使用代理 IP 池,定期更換 IP 地址,或者在請求之間增加延時。
行為分析:通過分析用戶的操作行為(如鼠標移動、點擊模式、滾動行為等),識別是否為爬蟲程序。模擬真實用戶的行為,例如隨機生成鼠標軌跡和點擊模式。

JavaScript 加密:網站通過 JavaScript 動態加載或加密數據,使得爬蟲無法直接通過靜態網頁源碼獲取數據。使用無頭瀏覽器(如 PhantomJS 或 Selenium)來執行 JavaScript,獲取動態加載的數據。
自定義字體反爬:網站通過自定義字體文件(如 `.ttf` 或 `.woff`)來渲染網頁中的文字,使得爬蟲無法直接獲取文本內容。下載字體文件,解析字體映射關系,將加密后的文字還原。

圖形驗證碼或滑塊驗證碼:當系統檢測到可疑的訪問模式時,會要求用戶輸入驗證碼,以區分人類用戶和爬蟲。使用打碼平臺或機器學習方法識別驗證碼。

動態頁面加載:網站通過 AJAX 或其他動態技術加載數據,使得爬蟲難以直接抓取。分析網絡請求,直接抓取動態加載的數據。
關聯請求上下文:通過檢查請求的上下文是否完整(如 Token 是否正確)來判斷是否為真實用戶。模擬完整的請求流程,確保請求頭和參數的完整性。


三、總結

總而言之,網絡爬蟲的學習從今天就開始了,希望自己能夠堅持完整的寫完整個課程,當然要和小隊的每位隊員一起學習啦,大家一起加油。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/909447.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/909447.shtml
英文地址,請注明出處:http://en.pswp.cn/news/909447.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Linux02

目錄 linux常用命令 用戶和權限 壓縮和解壓縮 其他相關命令 Linux中安裝常用軟件 1.1. jdk的安裝 1.1.1. 卸載linux中自帶的open-jdk 1.1.2. 把安裝包上傳到 linux上 1.1.3. 解壓安裝包 1.1.4. 配置環境變量 1.1.5 驗證環境變量 1.3 安裝mysql 1.3.1. 檢查依賴 1.…

JavaSE超詳細筆記-網絡編程篇-基于黑馬

1. 什么是網絡編程【理解】 1.1 概念 在網絡通信協議下,不同計算機上運行的程序,進行的數據傳輸。 應用場景: 即時通信、網游對戰、金融證券、國際貿易、郵件、等等。 不管是什么場景,都是計算機跟計算機之間通過網絡進行數據傳輸Java中可以使…

時序數據庫Influxdb3 core安裝

本文介紹時序數據庫Influxdb3 core(開源版本)的安裝和簡單使用以及調優參數的介紹。 預期: 安裝時序數據庫Influxdb3 core 創建數據庫mydb 寫入數據; 使用influxdb3-cli 和 grafana2種方式查詢寫入的數據 前期準備: linux服務器(本文服…

區間合并:區間合并問題

區間合并:區間合并問題 區間合并 www.acwing.com/problem/content/805/ 按區間的左端點排序 掃描整個區間,在這過程中把可能有交點的區間合并 全包含:不做改動相交:right 后移相離:更新至下一個維護區間 import j…

中國古代數學符號的演進 | 算籌 / 符號 / 算法

注:本文為“中國古代數學符號”相關合輯。 圖片清晰度受引文原圖所限。 略作重排,未整理去重。 如有內容異常,請看原文。 這個中國古代的數學瑰寶,到底厲害在哪? 原創 朱一文 科普中國 2024 年 07 月 31 日 15:30 北…

XMLDecoder、LDAP 注入與修復

問題:XMLDecoder注入 針對 xml 解碼器的注入攻擊 反序列化用戶控制的 XML ,程序沒有進行驗證, 會讓攻擊者有機會在服務器上執行惡意代 碼。 例:下面代碼片段中, XMLDecoder 處理不可信的輸入。 ... XMLDecode…

Unity 對象層級處理小結

一.第一優先級Camera Culling Mask屬性指定Camera顯示的Layer,可以多選 Depth:Depth大的Camera顯示的Layer顯示在前面 二.避免使用PositionZ調整遮擋關系 在 2D 游戲中,雖然可以通過 Z 軸來調整顯示順序,但這與 2D 游戲的設計理念不符。在可以控制顯示層級的多個要素或方…

python基礎舉例

最近又重新開始學python,淺淺記錄下學習到的東西(也方便自己回顧看) 縮進、空格對于python很重要,一定要注意! 以下代碼是基于pycharm編寫的。 01 輸出 #注釋 # 單行注釋用# ,ctrl/是單行注釋的快捷鍵 # …

開疆智能ModbusTCP轉Canopen網關連接匯川PLC配置案例

本案例是通過開疆智能研發的ModbusTCP轉Canopen網關將匯川PLC與陀螺儀連接進行組網通訊。 準備階段 軟件:InoProShop(V1.7.3),CANopen Configuration Studio PLC:匯川AC801-0221-R0R0 網關:開疆智能ModbusTCP轉Canopen網關 陀…

Tess4J:基于 Java 的 OCR 解決方案

在現代軟件開發中,圖像識別與文本提取已成為許多應用場景中的關鍵環節。OCR(Optical Character Recognition) 技術使得從圖像中提取文字成為可能。Tess4J 是一個基于 Java 的 OCR 開發庫,它封裝了 Google Tesseract OCR 引擎的本地…

Vue3 + JavaScript 父組件點擊按鈕觸發子組件事件方法

在 Vue 3 中&#xff0c;父組件點擊按鈕觸發子組件事件有以下三種常用方式&#xff1a; 方法 1&#xff1a;使用 ref 直接調用子組件方法&#xff08;推薦&#xff09; vue 復制 下載 <!-- 父組件 --> <template><button click"callChildMethod"…

超強人工智能解決方案套件InfiniSynapse:精準的業務理解、對各種數據源進行全模態聯合智能分析--部署安裝@Ubuntu22.04 @Docker

InfiniSynapse 通過自研的第二代LLM-Native RAG實現了企業業務的理解&#xff0c;精準的Schema召回保證數據的準確性。提供專門為大模型優化的InfiniSQL語言&#xff0c;從而可以更加準確的生成查詢語句&#xff0c;通過 InfiniSQL 引擎讓人類第一次對存儲在各種數據源的全模態…

解決國內無法加載谷歌驗證碼(reCAPTCHA):URL 重定向配置指南

解決國內無法加載谷歌驗證碼&#xff08;reCAPTCHA&#xff09;&#xff1a;URL 重定向配置指南 在搭建網站或使用某些應用時&#xff0c;經常會遇到需要調用谷歌驗證&#xff08;reCAPTCHA&#xff09;API 的情況。然而&#xff0c;由于網絡環境的特殊性&#xff0c;國內多數…

【Qt】如何使用QtInstallerFramework打包Qt程序

使用 Qt Installer Framework 可以將你的 Qt 程序打包成一個帶有安裝向導的安裝包&#xff0c;適用于 Windows、Linux 和 macOS 平臺。以下是完整的打包流程&#xff0c;以你當前開發的 ecgexport 應用為例。 &#x1f9f0; 一、準備工作 1. 安裝 Qt Installer Framework 下載…

如何編寫高效的Prompt:從入門到精通

在人工智能時代&#xff0c;特別是隨著大型語言模型(LLM)如ChatGPT、Claude等的普及&#xff0c;編寫高質量的Prompt(提示詞)已成為一項關鍵技能。一個好的Prompt可以顯著提高AI輸出的質量和相關性&#xff0c;而一個糟糕的Prompt可能導致無用甚至誤導性的結果。本文將帶你深入…

智慧工地云平臺源碼,基于微服務架構+Java+Spring Cloud +UniApp +MySql

智慧工地管理云平臺系統&#xff0c;智慧工地全套源碼&#xff0c;java版智慧工地源碼&#xff0c;支持PC端、大屏端、移動端。 智慧工地聚焦建筑行業的市場需求&#xff0c;提供“平臺網絡終端”的整體解決方案&#xff0c;提供勞務管理、視頻管理、智能監測、綠色施工、安全管…

【機械視覺】Halcon—【十三、實例找各個區域面積和中心點】

找區域面積和中心點 *獲取圖像 read_image (Image, fabrik) *關閉窗口 dev_close_window () *打開窗口 dev_open_window (0, 0, 512, 512, black, WindowID) *設置輸出字體&#xff0c;14號字&#xff0c;Courier字體&#xff0c;粗體 set_display_font (WindowID, 14, mono, …

MongoDB 基礎

一、MongoDB 基礎概念 1. 什么是 MongoDB MongoDB 是一個文檔型數據庫&#xff0c;數據以類似 JSON 的文檔形式存儲&#xff0c;使用 BSON 格式。設計理念是應對大數據量1、高性能和靈活性需求。數據組織方式&#xff1a;數據庫→2集合→文檔&#xff0c;其中集合類似于關系型…

RNN:從記憶困境到序列建模革命

在自然語言處理的戰場上&#xff0c;一個句子中的每個單詞都承載著前文的記憶。當傳統神經網絡面對這種時序依賴束手無策時&#xff0c;循環神經網絡&#xff08;RNN&#xff09; 以獨特的循環結構開啟了序列建模的新紀元。它像人類閱讀般記憶上下文&#xff0c;卻也因記憶衰減…

陽臺光伏配套電表ADL200N-CT/D16-Wf-1

安科瑞 華楠 18706163979 引言 在“雙碳”目標推動下&#xff0c;綠色能源正逐步走進日常生活。陽臺光伏作為一種新型分布式發電方式&#xff0c;憑借靈活安裝、高效節能的特點&#xff0c;成為城市家庭和工商業用戶的新選擇。安科瑞推出的ADL200N-CT/D16-Wf-1陽光光伏電表&a…