python-爬蟲基礎

爬蟲本質:通過編寫程序來獲取到互聯網上的資源。

我們的程序本質上就是模擬瀏覽器

一個簡單的小爬蟲:

只需要三步:

from urllib.request import urlopen

#url是網址,request意思是請求

e7baf3d798194288a840866057a1a1db.png

這里跑出來的中文是這樣的dab7cf6818644abdbca32193fb28b8f8.png注意看:前面有一個b',這代表后面的是字節,也就是說我們需要自己把它這個還原成我們想要看到的字符串,我們可以這樣還原:

e1579f2502e446fc8a801f6b0edffc15.png

不過這里面的問題就來了,我們解碼是按照utf-8還是jdk呢?其實源代碼里有寫的:f48f7c60c43a44b08b35b0fbee6e30f7.png所以這個地方是:

37b4f66254504693b38a686d02495996.png

現在就變成中文的了:

0aa6e7d1094a4ba8a4e6228ae5eede60.png

不過現在還是有個問題,我們得到的源碼里面一大堆看不懂的東西。我們先把它們保存到一個文件里去。a9983deca7324443964c65119993b875.png如果文件里出現亂碼,就:

0ea7a928a6c24a298e973e6328563003.png7750072c157d4247b1571ad7d6c01000.png

我們拿到了這些東西:191a111ba13340e783e7e581c9edbca7.png其實我們的瀏覽器拿到的也是這些東西,只是瀏覽器把它運行成這個樣子:

990655304cf7481a95a160b022b97fb5.png瀏覽器里我們只要輸入網址,按下回車,就相當于發送了一個請求。

web請求過程剖析:

響應分為兩種,一種是服務器渲染,另一種是客戶端渲染。服務器渲染就是在服務器端把數據和html源碼結合在一起,我們要的數據在html源碼里,客戶端渲染是第一次請求的時候只返回html框架,第二次請求的時候把關鍵字發給服務器,服務器再把數據返回,也就是說html源碼和數據是分開的

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

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

相關文章

單元化架構

目錄 ????????編輯 單元化 邏輯單元 單元化 多地多機房部署,是互聯網系統的必然發展方向,一個系統要走到這一步,也就必然要解決上面提到的問題:流量調配、數據拆分、延時等。業界有很多技術方案可以用來解決這些問題&…

【免殺】C2免殺技術(五)動態API

一、什么是動態API 在C2免殺領域中,“動態API” 主要指的是繞過靜態檢測的一種技術手段,其本質是運行時動態解析和調用Windows API函數,而不是在程序編譯階段就明確引用這些API。這種方式可以有效躲避靜態分析工具和殺軟的簽名識別。 為什么…

Python爬蟲實戰:研究JavaScript壓縮方法實現逆向解密

一、引言 在數字化信息爆炸的時代,網絡數據已成為驅動各行業發展的核心資產。Python 憑借其豐富的庫生態和簡潔的語法,成為網絡爬蟲開發的首選語言。然而,隨著互聯網安全防護機制的不斷升級,網站普遍采用 JavaScript 壓縮與混淆技術保護其核心邏輯和數據傳輸,這使得傳統爬…

HTTP 請求走私(HTTP Request Smuggling)

HTTP 請求走私(HTTP Request Smuggling)是一種通過利用前端代理(如負載均衡器、CDN)和后端服務器在 解析 HTTP 請求時存在不一致性 的漏洞,從而實現 注入惡意請求 的攻擊技術。 一、基本原理 HTTP 請求走私主要依賴兩…

【Google機器學習實踐指南(線性回歸篇)

🔍 Google機器學習實踐指南(線性回歸篇) Google機器學習實戰(3)-單變量線性回歸核心解析,掌握房價預測模型 一、建模流程全景圖 ▲ 四大核心步驟: 數據可視化→特征工程→模型訓練→預測推理 二、房價預測實戰 1. …

python打卡day16

NumPy 數組基礎 因為前天說了shap,這里涉及到數據形狀尺寸問題,所以需要在這一節說清楚,后續的神經網絡我們將要和他天天打交道。 知識點: numpy數組的創建:簡單創建、隨機創建、遍歷、運算numpy數組的索引&#xff1a…

ubuntu 20.04 更改國內鏡像源-阿里源 確保可用

鏡像源是跟linux版本一一對應的,查詢自己系統的版本號: 命令:lsb_release -a macw:~$ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 20.04.6 LTS Release: 20.04 Codename: focal macw:~$…

基于OpenCV的SIFT特征和FLANN匹配器的指紋認證

文章目錄 引言一、概述二、代碼解析1. 圖像顯示函數2. 核心認證函數2.1 創建SIFT特征提取器2.2 檢測關鍵點和計算描述符(源圖像)2.3 檢測關鍵點和計算描述符(模板圖像)2.4 創建FLANN匹配器2.5 使用K近鄰匹配 3. 匹配點篩選4. 認證…

四品種交易策略

策略概述 策略思路: 交易品種:同時交易四個品種,每個品種使用總資金的10%。 合約選擇:使用連續合約(data0)發出交易信號,實際交易 主力合約(data1)和下一個主力合約(data2)。 資金管理:總資金用A_CurrentEquity表示,交易手數據此計算。 止損執行:盤中達到止損…

MySQL事務的一些奇奇怪怪知識

Gorm事務有error卻不返回會發生什么 Gorm包是大家比較高頻使用。正常的用法是,如果有失敗返回error,整體rollback,如果不返回error則commit。下面是Transaction的源碼: // Transaction start a transaction as a block, return …

時序數據庫、實時數據庫與實時數倉:如何為實時數據場景選擇最佳解決方案?

隨著物聯網、金融交易、在線游戲等場景對實時數據處理需求的增長,市場上涌現出多種專門針對實時數據處理的數據庫解決方案。然而,面對時序數據庫、實時數據庫和實時數據倉庫這三種看似相似的技術,許多技術決策者常常感到困惑:它們…

Spring3+Vue3項目中的知識點——JWT

全稱:JOSN Web Token 定義了一種簡潔的、自包含的格式,用于通信雙方以json數據格式的安全傳輸信息 組成: 第一部分:Header(頭),記錄令牌類型、簽名算法等。 第二部分:Payload&am…

微服務架構詳解

微服務架構詳解:從概念到實踐(附代碼案例) 目錄 微服務架構詳解:從概念到實踐(附代碼案例) 一、微服務架構概述 1.1 什么是微服務? 1.2 微服務的核心思想 二、微服務架構的優勢與挑戰 2.1 優勢 2.2 挑戰 三、微服務架構的核心組件 3.1 服務注冊與發現 示例代…

linux下編寫shell腳本一鍵編譯源碼

0 前言 進行linux應用層編程時,經常會使用重復的命令對源碼進行編譯,然后把編譯生成的可執行文件拷貝到工作目錄,操作非常繁瑣且容易出錯。本文編寫一個簡單的shell腳本一鍵編譯源碼。 1 linux下編寫shell腳本一鍵編譯源碼 shell腳本如下&…

學習!FastAPI

目錄 FastAPI簡介快速開始安裝FastApiFastAPI CLI自動化文檔 Reqeust路徑參數Enum 類用于路徑參數路徑參數和數值校驗 查詢參數查詢參數和字符串校驗 請求體多個請求體參數嵌入單個請求體參數 CookieHeader表單文件直接使用請求 ResponseResponse Model多個關聯模型 響應狀態碼…

DAY 4 缺失值的處理

\1. 打開數據 import pandas as pd data pd.read_csv(rdata.csv) data\2. 查看數據 # 打印數據集的基本信息(列名、非空值數量、數據類型等) print("data.info() - 數據集的基本信息(列名、非空值數量、數據類型等)&#…

Java面試實戰:從Spring Boot到分布式緩存的深度探索

Java面試實戰:從Spring Boot到分布式緩存的深度探索 場景介紹 在一家著名的互聯網大廠,面試官老王正對求職者“水貨程序員”明哥進行Java技術面試。明哥帶著一點緊張和自信,迎接這場技術“拷問”。 第一輪:基礎問題 老王&#…

UART、SPI、IIC復習總結

一、UART 1、UART和USART的異同? 相同點 基本功能:都是用于串行通信的數據收發設備,能夠實現數據在不同設備之間的傳輸。在異步通信模式下,二者的工作方式相似,都使用起始位、數據位、校驗位(可選&#…

PostGIS實現矢量數據轉柵格數據【ST_AsRaster】

ST_AsRaster函數應用詳解:將矢量數據轉換為柵格數據 [文章目錄] 一、函數概述 二、函數參數與分組說明 三、核心特性與注意事項 四、示例代碼 五、應用場景 六、版本依賴 七、總結 一、函數概述 ST_AsRaster是PostGIS中用于將幾何對象(如點、線…

Linux 線程(上)

前言:大家早上中午晚上好!!今天來學習一下linux系統下所謂的線程吧!!! 一、重新理解進程,什么是進程? 1.1 圖解 其中黑色虛線部分一整塊就是進程,注意:一整…