爬蟲基本原理及requests庫用法

文章目錄

  • 一、爬蟲基本原理
    • 1、什么是爬蟲
    • 2、爬蟲的分類
    • 3、網址的構成
    • 4、爬蟲的基本步驟
    • 5、動態【異步】頁面和靜態【同步】頁面
    • 6、請求頭
  • 二、requests基本原理及使用
    • 1、chrome 抓包按鈕詳解
      • 1.1 Elements
      • 1.2 元素定位器
      • 1.3 Network
      • 1.4 All
      • 1.5 XHR
      • 1.6 Preserve log
      • 1.7 手機模式
      • 1.8 清空數據包
      • 1.9 Filter
      • 1.10 Search
      • 1.11 Search all file
    • 2、requests介紹
      • 2.1 概念
      • 2.2 安裝方式
      • 2.3 基本使用
      • 2.4 response類對應的方法
        • 2.4.1 獲取網頁源代碼:
        • 2.4.2 獲取二進制數據【音樂,視頻,圖片】
        • 2.4.3 獲取響應狀態碼【基本不用】
        • 2.4.4 獲取json數據【常用】
      • 2.5 headers的請求


一、爬蟲基本原理

1、什么是爬蟲

通俗: 解放人的雙手, 去互聯網獲取數據, 保存數據[數據庫, txt, excel, csv, pdf, 壓縮文件, image, video, music]

本質: 模擬瀏覽器, 向服務器發送網絡請求, 接受服務器返回的數據, 保存數據

2、爬蟲的分類

A、通用爬蟲: 百度, google, 搜狗 … 搜索引擎
B、聚焦爬蟲: 根據指定的目標, 獲取數據, 保存數據

3、網址的構成

例如:https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&tn=baidu&wd=李智恩
A、協議部分:https / http – 超文本傳輸協議
B、域名部分:www.baidu.com – ip地址–<外殼>–域名【方便人的記憶】
C、路徑部分:一層一層的信息
D、參數部分:請求時候, 攜帶必要參數 – &符號鏈接

4、爬蟲的基本步驟

A、準備網址
B、請求網址
C、解析數據
D、保存數據

5、動態【異步】頁面和靜態【同步】頁面

A、打開瀏覽器
B、訪問網址
C、網頁空白處右鍵點擊,查看網頁源代碼
D、在網頁源代碼中搜索網頁所展示的部分(如果能搜到,則是靜態網頁;如果搜不到,則是動態網頁)

6、請求頭

A、cookies: 身份標識(登錄網站之后會有一段cookies值)
B、反爬字段: referer – 來源于哪個網站
C、瀏覽器標識: user-agent(用戶代理)

二、requests基本原理及使用

1、chrome 抓包按鈕詳解

1.1 Elements

網頁源代碼展示

1.2 元素定位器

使用元素定位器,可以準確定位網頁所展示的部分,對應的前端代碼

1.3 Network

網絡調試臺,可以用于抓包

1.4 All

使用All抓包時,會顯示所有的包

1.5 XHR

使用XHR抓包時,只會顯示AJAX包,也稱為動態數據包,一般用于抓取動態加載的數據

1.6 Preserve log

是否需要保存歷史抓包記錄,點亮后即為保存歷史記錄

1.7 手機模式

是否選擇手機模式,進行頁面訪問,一般用于手機抓包

1.8 清空數據包

將當前數據包進行清空,方便更準確的抓取數據包

1.9 Filter

過濾查詢,requests_headers

1.10 Search

搜索文本內容所在的包

1.11 Search all file

搜索文本內容所在的包

2、requests介紹

2.1 概念

非常強大的爬蟲請求庫, 解決日常90%爬蟲

2.2 安裝方式

pip install requests

2.3 基本使用

  1. 導包: import requests
  2. 使用: respone = requests.get(url, 反爬請求頭)

2.4 response類對應的方法

2.4.1 獲取網頁源代碼:

A、text
B、content.decode()

2.4.2 獲取二進制數據【音樂,視頻,圖片】

content

2.4.3 獲取響應狀態碼【基本不用】

response.status_code
200: 請求成功

2.4.4 獲取json數據【常用】

網站數據很多都是json數據, 做一件事情: json --> 字典

A、response = requests.get(url).textresponse = json.loads(response)
B、response = requests.get(url).json()

2.5 headers的請求

headers請求頭的作用是對爬蟲進行偽裝,headers的格式是字典,示例如下:

headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.51 Safari/537.36'}

其中添加的請求頭參數個數,可以根據實際需求添加

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

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

相關文章

暴雨信息液冷計算解決方案亮相CCIG 2024

5月24日&#xff0c;2024中國圖象圖形大會&#xff08;CCIG&#xff09;在陜西西安正式開幕。作為涵蓋圖像圖形各專業領域的綜合性的全國性學術會議&#xff0c;CCIG面向開放創新、交叉融合的發展趨勢&#xff0c;為圖像圖形相關領域的專家學者和產業界的同仁&#xff0c;搭建了…

Java+Spring+ MySQL + MyCat云HIS有哪些優勢?智慧醫療云(HIS)低成本與安全保障的完美結合

JavaSpring MySQL MyCat云HIS有哪些優勢&#xff1f;智慧醫療云(HIS)低成本與安全保障的完美結合 云HIS的優點包括節省成本、便捷高效、穩妥安全等。通過云HIS&#xff0c;醫療機構無需在本地建立機房、購買服務器和應用軟件&#xff0c;降低了硬件和人力成本。同時&#xff0…

虛擬化介紹

虛擬化介紹 概述概念特點優勢實現手段 虛擬化架構概述寄居虛擬化架構裸金屬虛擬化架構操作系統虛擬化架構混合虛擬化架構幾種虛擬化架構的比較虛擬化架構與虛擬化技術的關系 虛擬化技術分類服務器虛擬化技術分類 存儲虛擬化技術分類網絡虛擬化技術分類 服務器虛擬化技術處理器虛…

開源軟件 | 一文徹底搞懂許可證的定義、起源、分類及八大主流許可證,讓你選型不再頭疼

為什么開源軟件會存在許可證&#xff0c;許可證的起源與產生目的是為了解決什么問題&#xff1f;許可證的定義又是怎樣的&#xff1f;什么是Copyleft&#xff0c;與Copyright有何區別&#xff1f;開源軟件常見的許可證有哪些&#xff1f;這些許可證都有什么特點&#xff1f;接下…

[c++] 小游戲 能量1.0.1 版本 zty出品

大家好 緊急修改&#xff0c;發現判斷游戲是否結束部分有問題&#xff0c;緊急修改bug&#xff0c;對大家造成的不便我深感歉意&#xff0c;對不起 先贊后看 養成習慣 code&#xff1a; #include<bits/stdc.h> #include<windows.h> using namespace std; int rg…

Zabbix實現7x24小時架構監控

上篇&#xff1a;https://blog.csdn.net/Lzcsfg/article/details/138774511 文章目錄 Zabbix功能介紹Zabbix平臺選擇安裝Zabbix監控端部署MySQL數據庫Zabbix參數介紹登錄Zabbix WEBWEB界面概覽修改WEB界面語言添加被控主機導入監控模板主機綁定模板查看主機狀態查看監控數據解…

6.封裝讀寫游戲數據的功能

前置知識&#xff1a;5.模仿CheatEngine實現鎖血無敵功能&#xff08;封裝它的代碼&#xff09; 封裝功能.cpp文件 #include "封裝功能.h"GAMECheat::GAMECheat(unsigned pid, unsigned _baseAdr, unsigned _readTime) {readTime _readTime;baseAdr _baseAdr;hPr…

代碼隨想錄算法訓練營第三十四天 | 理論基礎、455.分發餅干、376、擺動序列、53.最大子序和

目錄 理論基礎 455.分發餅干 思路 代碼 376.擺動序列 思路 代碼 53.最大子序和 思路 代碼 理論基礎 代碼隨想錄 455.分發餅干 代碼隨想錄 思路 可以是大餅干優先滿足大胃口&#xff0c;也可以是小餅干優先滿足小胃口。 代碼 class Solution:def findContentChildre…

ArkUI-X開發指南:【SDK配置和構建說明】

ArkUI-X SDK配置和構建說明 ArkUI-X SDK是ArkUI-X開源項目的編譯產物&#xff0c;可將ArkUI-X SDK集成到現有Android和iOS應用工程中&#xff0c;使開發者基于一套ArkTS主代碼&#xff0c;就可以構建支持多平臺的精美、高性能應用。SDK內容包含ArkUI跨平臺運行時&#xff0c;組…

安裝SSL證書能提高網站訪客嗎?

在當今互聯網時代&#xff0c;網站的安全性和用戶體驗至關重要。隨著網絡攻擊和數據泄露事件的不斷增加&#xff0c;用戶對網站的信任也變得越來越重要。SSL證書是一種數字證書&#xff0c;可以在Web服務器和網頁瀏覽器之間建立加密鏈接&#xff0c;確保網站傳輸的數據安全&…

【HarmonyOS嘗鮮課】- 前言

面向人群 本課程適用于HarmonyOS應用開發的初學者。 有無經驗的開發者都可以輕松掌握ArkTS語言聲明式開發范式&#xff0c;體驗更簡潔、更友好的HarmonyOS應用開發旅程。 什么是HarmonyOS HarmonyOS&#xff08;鴻蒙操作系統&#xff09;是由華為技術有限公司開發的全場景分…

B站自動回復插件_無需千粉,輕松適配引流拉新資源分享

項目介紹 B站關鍵詞自動回復插件&#xff0c;無需千粉&#xff0c; 很適合做流量做引流做私欲的朋友&#xff0c; 前期沒有千粉是無法開啟官方自動回復的&#xff0c; 適當的情況下可以用這個插件頂一下&#xff0c; 三聯好評領取資源的打法真的超級漲粉&#xff0c; 感謝插件…

【OceanBase診斷調優】—— KVCache 排查手冊

原文鏈接&#xff1a;OceanBase分布式數據庫-海量數據 筆筆算數 本文介紹 KVcache 相關問題的排查方法。 KVCache 相關概念 在進行排查前&#xff0c;需要了解幾個概念。 pin 一個 cache 塊 ( memblock ) 被 pin 住&#xff0c;表示它正在被引用。 cache 的由多個定長的塊組成…

HAL庫點LED燈

文章目錄 一、創建CubeMX項目操作步驟1.STM32CubeMX創建工程2.選擇芯片3.Pinout & Configuration配置4.Clock Configuration配置5.Project Manager配置 二、實驗&#xff08;一&#xff09;LED流水燈1.Keil修改代碼2.實驗現象3.keil波形仿真 &#xff08;二&#xff09;2只…

代碼隨想錄(棧和隊列)

用棧實現隊列&#xff08;Leetcode232&#xff09; package 棧和隊列;import java.util.ArrayList; import java.util.Stack; 思路&#xff1a;1、用一個棧stack2來存壓入的數&#xff0c;當要pop或peek操作時再壓入stack中&#xff0c;實現隊列順序2、不是每次pop都從stack2中…

沒有CAN硬件,在Linux下模擬使用Socket CAN

即使沒有實際的CAN硬件,我們仍然可以在Linux下使用socketcan進行模擬。這可以通過使用虛擬的CAN接口(vcan)來實現。vcan接口是Linux內核提供的虛擬CAN總線接口,適用于開發和測試socketcan應用。 以下是如何設置和使用vcan接口的步驟: 1. 加載vcan模塊 首先,你需要確保…

變量命名的藝術:讓你的代碼更具可讀性

新書上架~&#x1f447;全國包郵奧~ python實用小工具開發教程http://pythontoolsteach.com/3 歡迎關注我&#x1f446;&#xff0c;收藏下次不迷路┗|&#xff40;O′|┛ 嗷~~ 目錄 一、引言&#xff1a;為何變量命名如此重要&#xff1f; 二、變量命名的基本規則 1. 避免數…

卷爆短劇出海:五大關鍵,由AIGC重構

短劇高溫下&#xff0c;談談AIGC的助攻路線。 短劇&#xff0c;一個席卷全球的高溫賽道。 以往只是踏著霸總題材&#xff0c;如今&#xff0c;內容循著精品化、IP化的自然發展風向&#xff0c;給內容、制作、平臺等產業全鏈都帶來新機&#xff0c;也讓短劇消費走向文化深處&am…

Docker僅需3步搭建免費私有化的AI搜索引擎-FreeAskInternet!

簡介 FreeAskInternet 是一個完全免費、私有且本地運行的搜索引擎&#xff0c;并使用 LLM 生成答案&#xff0c;無需 GPU。用戶可以提出問題&#xff0c;系統會進行多引擎搜索&#xff0c;并將搜索結果合并到ChatGPT3.5 LLM中&#xff0c;并根據搜索結果生成答案。 什么是 Fr…

重學java 39.多線程 — 線程安全

逐漸成為一個情緒穩定且安靜成長的人 ——24.5.24 線程安全 什么時候發生&#xff1f; 當多個線程訪問同一個資源時&#xff0c;導致了數據有問題&#xff0c;出現并發問題&#xff0c;數據不能及時更新&#xff0c;導致數據發生錯誤&#xff0c;出現線程安全問題 多線程安全問…