【爬蟲基礎】第二部分 爬蟲基礎理論 P1/3

?上節內容回顧:【爬蟲基礎】第一部分 網絡通訊 P1/3-CSDN博客

? ? ? ? ? ? ? ? ? ? ? ? ??【爬蟲基礎】第一部分 網絡通訊-Socket套接字 P2/3-CSDN博客

? ? ? ? ? ? ?? ? ? ? ? ? ?【爬蟲基礎】第一部分 網絡通訊-編程 P3/3-CSDN博客? ?

爬蟲相關文檔,希望互相學習,共同進步

風123456789~-CSDN博客


前言?

1.知識點碎片化:每個網站實現的技術相似但是有區別,要求我們根據不同的網站使用不同的應對手段。主要是常用的一些網站爬取技術。

2.學習難度:入門比web簡單,但后期難度要比web難,在于爬蟲工程師與網站開發及運維人員的對抗。比如你寫了爬蟲但是被網站運維人員發現后添加反爬,那么就要解決反爬。即平臺更新換代,爬蟲策略需要實時更新。

3.學習特點:以摸個網站爬蟲為講解對象,即一個技術點的案例。

4.后續發展:要求掌握的東西多,工作中根據工作需要涉及到更多沒有接觸的知識。

5.法律層面:爬蟲相關工作屬于灰色地帶,目前國內現行法律對于爬蟲相關評判還沒有明確制度。

6.建議:好記性不如爛筆頭,建議多找網站進行爬取聯系,同時做好筆記。

1.概述

爬蟲通常會遵循一定的規則和算法,以確保能夠高效地遍歷互聯網并收集到所需的數據。

?本節章節:
? ? 第一節? 爬蟲理論原理 (本文)
? ? 第二節? http協議
? ? 第三節? chrome瀏覽器抓包說明

2.爬蟲理論原理

? ?知識點:
? ? 1.爬蟲的概念
? ? 2.爬蟲的作用
? ? 3.爬蟲的分類
? ? 4.爬蟲的流程

2.1 爬蟲的概念

? ? 爬蟲就是自動抓取互聯網信息的程序

? ???爬蟲(Web Crawler)是一種按照一定規則從互聯網上抓取信息的程序。?它與用戶正常訪問信息的區別在于,用戶是緩慢、少量地獲取信息,而爬蟲則是大量地獲取信息。爬蟲通過模擬瀏覽器請求網站的行為,獲取網頁的HTML代碼、JSON數據或二進制數據(如圖片、視頻、音頻等),并將其存儲或進行進一步處理。?

? ? 再通俗講,如果說互聯網是一張大的蜘蛛網,數據便是存放于蜘蛛網的各個節點,而爬蟲就是一只小蜘蛛,沿著網絡抓取自己的獵物(數據)爬蟲指的是:向網站發起請求,獲取資源后分析并提取有用數據的程序。從技術層面來說就是 通過程序模擬瀏覽器請求站點的行為,把站點返回的HTML代碼/JSON數據/二進制數據(圖片、視頻) 爬到本地,進而提取自己需要的數據,存放起來使用。

2.2?爬蟲的作用

為什么要使用爬蟲?

? ? ? 大數據時代,要進行數據分析,首先要有數據源,而學習爬蟲,可以讓我們獲取更多的數據源,并且這些數據源可以按我們的目的進行采集,去掉很多無關數據。

? ? ? 在進行大數據分析或者進行數據挖掘的時候,數據源可以從某些提供數據統計的網站獲得,也可以從某些文獻或內部資料中獲得,但是這些獲得數據的方式,有時很難滿足我們對數據的需求,而手動從互聯網中去尋找這些數據,則耗費的精力過大。

? ? ? 此時就可以利用爬蟲技術,自動地從互聯網中獲取我們感興趣的數據內容,并將這些數據內容爬取回來,作為我們的數據源,從而進行更深層次的數據分析,并獲得更多有價值的信息。

?爬蟲的作用:

? ? 1)數據采集

? ? ? ? ? ? ??爬蟲可以快速收集大量數據,常用于市場調研、競爭分析等。

? ??2)數據統計
? ? ? ? ? ? ??通過分析大量數據,可以發現一些人為難以察覺的模式和趨勢。
? ? 3)數據的功能性集成(如:刷流量與秒殺活動?

? ? ? ? ? ? ? 爬蟲可以模擬大量用戶訪問,增加網站的訪問量,甚至參與秒殺活動。

2.3?爬蟲的分類

爬蟲的類型

  1. ?通用爬蟲?:用于收集互聯網上的大量數據,例如搜索引擎的爬蟲。它們遍歷整個網頁鏈接,并按照規則提取相關信息。
  2. ?聚焦爬蟲?:針對特定主題或領域進行數據收集。它們只訪問和提取與預設主題相關的網頁數據。對某個單一的平臺,單獨開發的爬蟲? ?采集抖音的爬蟲程序
  3. ?增量式爬蟲?:主要用于定期更新數據,而不是每次都全面爬取。它們記錄上一次爬取的時間戳,只訪問和提取自上次爬取以來更新過的網頁數據。
  4. ?深度爬蟲?:專門用于訪問和收集隱藏在互聯網深層網頁中的信息。這些網頁通常不被搜索引擎索引,需要特殊的技術和算法才能訪問和提取數據。
  5. ?垂直爬蟲?:專注于特定網站或特定類型網頁的數據收集,例如新聞爬蟲、電商產品爬蟲等。
  6. ?社交媒體爬蟲?:用于在各種社交媒體平臺上抓取用戶的信息、帖子、評論等數據,常用于情感分析、輿情監測等應用。

?1)通用爬蟲

類似百度、谷歌這樣的爬蟲,抓取對象是整個互聯網,對于網頁沒有固定的抽取規則。 對于所有網頁都是一套通用的處理方法。

? ? ? ?需要采集網站(平臺):特別多
? ? ? ?收集的信息非常有限
? ? ? ?收集網頁的標題
? ? ? ?采集算法

2)垂直爬蟲

這類爬蟲主要針對一些特定對象、網站,有一臺指定的爬取路徑、數據抽取規則。

? ? ? 比如今日頭條,它的目標網站就是所有的新聞類網站。

? ? ? 比如Etao比價、網易的慧慧購物助手,他的目標網站就是 淘寶、京東等等電商網站。?

通用爬蟲和垂直爬蟲顯著的區別:

? ? ?A.抓取范圍,通用爬蟲的抓取范圍要比垂直爬蟲大得多,一個是整個互聯網,一個是指定的網站。

? ? ?B.爬取路線,一個通用爬蟲要不按照深度爬取、要不是按廣度爬取。 而垂直爬蟲則可能是按照指定路線爬取。

? ? ?C.數據處理,通用爬蟲一般就是分詞、索引到數據庫。 而垂直爬蟲則通過特定的規則來抽取更加精細的數據 。

2.4?爬蟲的流程原理

用戶獲取網絡數據的方式:

方式1:瀏覽器提交請求--->下載網頁代碼--->解析成頁面

方式2:模擬瀏覽器發送請求(獲取網頁代碼)->提取有用的數據->存放于數據庫或文件中

爬蟲要做的就是方式2。

?爬蟲的流程步驟:?1.準備數據(網站地址)
?2.發送請求,獲取響應
?3.解析響應,數據提取
?4.保存數據

1)準備數據(網站地址)

2)發起請求,獲取響應

爬蟲首先會向目標網站發送HTTP請求,以獲取網頁的HTML源碼。

Request包含:請求頭、請求體等?

Request模塊缺陷:不能執行JS 和CSS 代碼

如果服務器能正常響應,則會得到一個Response

Response包含:html,json,圖片,視頻等

3)解析響應,數據提取

獲取到HTML源碼后,爬蟲會使用解析器對網頁進行解析,提取出所需的信息。

解析html數據:正則表達式(RE模塊),第三方解析庫如Beautifulsoup,pyquery等

解析json數據:json模塊

解析二進制數據:以wb的方式寫入文件

4)保存數據

提取出的信息會被存儲到本地文件、數據庫或其他存儲介質中,以便后續的分析和處理

數據庫([MySQL],Mongdb、Redis)

文件

?

?

注意:法律和道德問題

在使用爬蟲時,需要遵守一定的法律和道德準則,尊重網站的隱私政策和使用條款,確保合法和負責任地使用爬蟲技術。

今天先到這里吧~~

預知后事如何,且聽下回分解~ ok


項目管理--相關知識???

項目管理-項目績效域1/2-CSDN博客

項目管理-項目績效域1/2_八大績效域和十大管理有什么聯系-CSDN博客

項目管理-項目績效域2/2_績效域 團不策劃-CSDN博客

高項-案例分析萬能答案(作業分享)-CSDN博客

項目管理-計算題公式【復習】_項目管理進度計算題公式:樂觀-CSDN博客

項目管理-配置管理與變更-CSDN博客

項目管理-項目管理科學基礎-CSDN博客

項目管理-高級項目管理-CSDN博客

項目管理-相關知識(組織通用治理、組織通用管理、法律法規與標準規范)-CSDN博客


Oracle其他文檔,希望互相學習,共同進步

Oracle-找回誤刪的表數據(LogMiner 挖掘日志)_oracle日志挖掘恢復數據-CSDN博客

oracle 跟蹤文件--審計日志_oracle審計日志-CSDN博客

ORA-12899報錯,遇到數據表某字段長度奇怪現象:“Oracle字符型,長度50”但length查卻沒有50_varchar(50) oracle 超出截斷-CSDN博客

EXP-00091: Exporting questionable statistics.解決方案-CSDN博客

Oracle 更換監聽端口-CSDN博客

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

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

相關文章

Compose 手勢處理,增進交互體驗

Compose 手勢處理,增進交互體驗 概述常用手勢處理Modifierclickable()combinedClickable()draggable()swipeable()transformable()scrollable()nestedScrollNestedScrollConnectionNestedScrollDispatcher 定制手勢處理使用 PointerInput ModifierPointerInputScope…

ue5 3dcesium中從本地配置文件讀取路3dtilles的路徑

關卡藍圖中獲得3dtiles的引用 拉出設置url 設置路徑 至于設置的路徑從哪里來 可以使用varest讀取文件里的接送字符串 path中配置地址 path變量的值為: Data/VillageStartMapConfig.json此地址代表content的地下的data文件夾里的config.json文件 {"FilePath": &quo…

音視頻入門基礎:RTP專題(12)——RTP中的NAL Unit Type簡介

一、引言 RTP封裝H.264時,RTP對NALU Header的nal_unit_type附加了擴展含義。 由《音視頻入門基礎:H.264專題(4)——NALU Header:forbidden_zero_bit、nal_ref_idc、nal_unit_type簡介》可以知道,nal_unit…

搜索賦能:大型語言模型的知識增強與智能提升

引言 近年來,大型語言模型(LLM)取得了顯著的進展,并在各個領域展現出強大的能力。然而,LLM也存在一些局限性,尤其是在知識庫方面。由于訓練數據的局限性,LLM無法獲取最新的知識,也無…

EX_25/2/24

寫一個三角形類,擁有私有成員 a,b,c 三條邊 寫好構造函數初始化 abc 以及 abc 的set get 接口 再寫一個等腰三角形類,繼承自三角形類 1:寫好構造函數,初始化三條邊 2:要求無論如何,等腰三角形類對象&#x…

nv docker image 下載與使用命令備忘

1,系統需求 Requirements for GPU Simulation GPU Architectures Volta, Turing, Ampere, Ada, Hopper NVIDIA GPU with Compute Capability 7.0 CUDA 11.x (Driver 470.57.02), 12.x (Driver 525.60.13) Supported Systems CPU architectures x86_64, ARM…

學習記錄:初次學習使用transformers進行大模型微調

初次使用transformers進行大模型微調 環境: 電腦配置: 筆記本電腦:I5(6核12線程) 16G RTX3070(8G顯存) 需要自行解決科學上網 Python環境: python版本:3.8.8 大模型&#xff1a…

【Java學習】Object類與接口

面向對象系列五 一、引用 1.自調傳自與this類型 2.類變量引用 3.重寫時的發生 二、Object類 1.toString 2.equals 3.hashCode 4.clone 三、排序規則接口 1.Comparable 2.Comparator 一、引用 1.自調傳自與this類型 似復刻變量調用里面的非靜態方法時,都…

OpenEuler學習筆記(三十五):搭建代碼托管服務器

以下是主流的代碼托管軟件分類及推薦,涵蓋自托管和云端方案,您可根據團隊規模、功能需求及資源情況選擇: 一、自托管代碼托管平臺(可私有部署) 1. GitLab 簡介: 功能全面的 DevOps 平臺,支持代碼托管、C…

Vscode無法加載文件,因為在此系統上禁止運行腳本

1.在 vscode 終端執行 get-ExecutionPolicy 如果返回是Restricted,說明是禁止狀態。 2.在 vscode 終端執行set-ExecutionPolicy RemoteSigned 爆紅說明沒有設置成功 3.在 vscode 終端執行Set-ExecutionPolicy -Scope CurrentUser RemoteSigned 然后成功后你再在終…

Transformer 架構 理解

大家讀完覺得有幫助記得關注和點贊!!! Transformer 架構:encoder/decoder 內部細節。 的介紹,說明 Transformer 架構相比當時主流的 RNN/CNN 架構的創新之處: 在 transformer 之前,最先進的架構…

事務的4個特性和4個隔離級別

事務的4個特性和4個隔離級別 1. 什么是事務2. 事務的ACID特性2.1 原子性2.2 一致性2.3 持久性2.4 隔離性 3. 事務的創建4. 事務并發時出現的問題4.1 DIRTY READ 臟讀4.2 NON - REPEATABLR READ 不可重復讀4.3 PHANTOM READ 幻讀 5. 事務的隔離級別5.1 READ UNCOMMITTED 讀未提交…

LeetCode熱題100- 字符串解碼【JavaScript講解】

古語有云:“事以密成,語以泄敗”! 關于字符串解碼: 題目:題解:js代碼:代碼中遇到的方法:repeat方法:為什么這里不用this.strstack.push(result)? 題目&#x…

水利工程安全包括哪幾個方面

水利工程安全培訓的內容主要包括以下幾個方面: 基礎知識和技能培訓 : 法律法規 :學習水利工程相關的安全生產法律法規,了解安全生產標準及規范。 事故案例 :通過分析事故案例,了解事故原因和教訓&#x…

淺談新能源汽車充電樁建設問題分析及解決方案

摘要: 在全球倡導低碳減排的大背景下,新能源成為熱門行業在全球范圍內得以開展。汽車尾氣排放會在一定程度上加重溫室效應,并且化石能源的日漸緊缺也迫切對新能源汽車發展提出新要求。現階段的新能源汽車以電力汽車為主,與燃油汽…

05-1基于vs2022的c語言筆記——運算符

目錄 前言 5.運算符和表達式 5-1-1 加減乘除運算符 1.把變量進行加減乘除運算 2.把常量進行加減乘除運算 3.對于比較大的數(往數軸正方向或者負方向),要注意占位符的選取 4.浮點數的加減乘除 5-1-2取余/取模運算符 1.基本規則 2.c語…

ubuntu:換源安裝docker-ce和docker-compose

更新apt源 apt換源:ubuntu:更新阿里云apt源-CSDN博客 安裝docker-ce 1、更新軟件源 sudo apt update2、安裝基本軟件 sudo apt-get install apt-transport-https ca-certificates curl software-properties-common lrzsz -y3、指定使用阿里云鏡像 su…

0—QT ui界面一覽

2025.2.26,感謝gpt4 1.控件盒子 1. Layouts(布局) 布局控件用于組織界面上的控件,確保它們的位置和排列方式合理。 Vertical Layout(垂直布局) :將控件按垂直方向排列。 建議:適…

Apache Doris 索引的全面剖析與使用指南

搞大數據開發的都知道,想要在海量數據里快速查數據,就像在星圖里找一顆特定的星星,賊費勁。不過別慌,數據庫索引就是咱們的 “定位神器”,能讓查詢效率直接起飛!就拿 Apache Doris 這個超火的分析型數據庫來…

docker file中ADD命令的介紹

在 Docker 的世界里,Dockerfile 是一個用于定義鏡像內容和行為的腳本文件。其中,ADD 指令是 Dockerfile 中一個非常重要的命令,用于將文件或目錄從主機文件系統復制到容器的文件系統中。本文將詳細介紹 ADD 指令的作用、使用方式以及一些最佳…