Web Scraping(網頁抓取)基本原理 - 白話篇

来源:https://www.cnblogs.com/bitssea/archive/2020/04/05/12555045.html
-Advertisement-
Play Games

本文主要介紹 Web Scraping 的基本原理,基於Python語言,大白話,面向可愛的小白(\^ \^)。 易混淆的名稱: 很多時候,大家會把,在網上獲取Data的代碼,統稱為“爬蟲”, 但實際上,所謂的“爬蟲”,並不是特別準確,因為“爬蟲”也是分種的, 常見的“爬蟲”有兩種: 1. 網路爬蟲 ...


本文主要介紹 Web Scraping 的基本原理,基於Python語言,大白話,面向可愛的小白(^-^)。


易混淆的名稱:

很多時候,大家會把,在網上獲取Data的代碼,統稱為“爬蟲”,
但實際上,所謂的“爬蟲”,並不是特別準確,因為“爬蟲”也是分種的,

常見的“爬蟲”有兩種:

  1. 網路爬蟲 (Web Crawler),又稱 Spider;Spiderbot
  2. 網頁抓取 (Web Scraper),又稱 Web Harvesting;Web Data Extraction

而,這篇文章,主要講解的是第二種“爬蟲”(Web Scraper)的原理。

Web Scraping 是什麼?

簡單的說 Web Scraping,(在本文里)就是指,用Python代碼,從肉眼可見的網頁上,抓取數據。

為什麼需要 Web Scraping?

因為,重覆工作太多,自己做,可能會累死!

代碼的適用實例有哪些?

  1. 如,需要在證交所,下來50只不同股票的當前價格,
  2. 或者,想 print 出,新聞網站上,所有最新新聞的標題,
  3. 或者,只是想把網站上所有商品的價格列出來,放到 Excel 里對比下,
  4. 等等各種,盡可發揮你的想象力.....

Web Scraping 的基本原理:

  1. 首先,你需要瞭解,網頁是怎麼呈現在,我們屏幕上的;

    1. 其實就是,我們發出一個Request,
    2. 然後百公裡外的伺服器回給我們一個 Response;
    3. 然後我們收看到一大堆文字,
    4. 最後,瀏覽器,偷偷的把這堆文字排好了版,放在了我們屏幕上;
    5. 再詳細的原理,可以去看我之前博文里的書,HTTP下午茶 - 小白入門書
  2. 然後,我們要瞭解,使用Python,如何實現它,實現原理基本就四個步驟:

    1. 首先,代碼需要向伺服器發出一個Request,然後收到一個Response(html文件)
      • 這裡可以,使用Python的,request庫,或者 urllib標準庫
    2. 然後,我們需要處理收到的這個Response,找到我們所需要的文字
      • 這裡使用,BeautifulSoup4 來實現對 html 文件的解析
    3. 然後,需要設計代碼流程,來處理重覆任務
      • 這裡使用,Loop什麼的,來完成重覆的流程
    4. 最後,導出我們得到的數據,最好是漂亮的Excel表格
      • 這裡可以先使用,pandas,來完成一些數據處理,或者計算
      • 然後使用,openpyxl庫來完成,寫入Excel的過程

篇尾總結:

這篇文章,重點在於講解實現的思路和過程,
所以,並非詳盡,也並沒有給出實際的代碼,
但是,這個思路,幾乎是網頁抓取的通用套路。

就寫到這裡吧,想起什麼再更新,
要是有寫的不到位的地方,還請包涵!




您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 前言 做項目涉及表情在網頁上顯示。稍微研究了一下實現方案,整體思路不複雜,就是稍微涉及到一些新概念和新方法。 精靈圖 精靈圖又稱雪碧圖,簡單來說就是一種把很多小圖片拼成一張大圖的圖片形式。下圖就是表情項目中的精靈圖。註意這張精靈圖是png格式,除表情外其他區域都是透明的。 精靈圖解決的問題是:很多網 ...
  • 小計劃 四月抓基礎 五月二刷重點知識,加點項目鞏固(大概三個項目的樣子) 六月抓面試,沖秋招。 四月博客會更以下內容 VUE 全套搭建小米商城(更註重前端) 三種 node.js 方式搭建個人博客(更註重後端) 深入解讀 ES6 系列 再學 JavaScript ES(6-10) 大話 HTTP ... ...
  • 路由(vue-router) 現在的應用都流行SPA應用(single page application) 傳統的項目大多使用多頁面結構,需要切換內容的時候我們往往會進行單個HTML文件的跳轉,這個時候網路、性能影響,瀏覽器會出現不定時間的空白界面,用戶體驗不好 單頁面應用就是用戶通過某些操作地址欄 ...
  • 父組件給子組件傳值 // 父<div id = "app"> <my-content></my-content></div> // 子<template id="content"> <div class="content"> 這裡是內容區域 {{ msg }} </div></template> 在 ...
  • 其實將整個網頁全局變色,無非就是三種,css直接設置,添加svg濾鏡,通過js遍歷所有標簽更改顏色,於是 1、css 直接編輯樣式,然後在需要應用的地方設置class 1 .gray { 2 -webkit-filter: grayscale(100%); 3 -moz-filter: graysc ...
  • 圖解Java設計模式之職責鏈模式 學校OA系統的採購審批項目 :需求是 傳統方案解決OA系統審批,傳統的設計方案 職責鏈模式基本介紹 職責鏈模式解決OA系統採購審批 職責鏈模式在SpringMVC框架應用的源碼 職責鏈模式的註意事項和細節 學校OA系統的採購審批項目 :需求是 採購員採購教學器材1) ...
  • 中台MongoDB應用目前數據倉庫與大數據不足數據中台以打通部門或數據孤島的統一數據平臺為基礎,構建統一數據資產體系,並以API服務方式為全渠道業務 分析+應用,提供即時交付能力的企業級數據架構金融行業技術需求技術產品關係型資料庫數據倉庫大數據NOSQL與非結構數據MongoDb存儲的優勢,多模數據... ...
  • 什麼是單例模式 單例模式(Singleton Pattern)是一個比較簡單的模式,實際應用很廣泛,比如 Spring 中的Bean實例就是一個單例對象。 文章首發於作者微信公眾號【碼猿技術專欄】設計模式:單例模式,原創不易,喜歡的支持一下!!!! 定義:確保某一個類 只有一個實例,而且自行實例化並 ...
一周排行
    -Advertisement-
    Play Games
  • GoF之工廠模式 @目錄GoF之工廠模式每博一文案1. 簡單說明“23種設計模式”1.2 介紹工廠模式的三種形態1.3 簡單工廠模式(靜態工廠模式)1.3.1 簡單工廠模式的優缺點:1.4 工廠方法模式1.4.1 工廠方法模式的優缺點:1.5 抽象工廠模式1.6 抽象工廠模式的優缺點:2. 總結:3 ...
  • 新改進提供的Taurus Rpc 功能,可以簡化微服務間的調用,同時可以不用再手動輸出模塊名稱,或調用路徑,包括負載均衡,這一切,由框架實現並提供了。新的Taurus Rpc 功能,將使得服務間的調用,更加輕鬆、簡約、高效。 ...
  • 本章將和大家分享ES的數據同步方案和ES集群相關知識。廢話不多說,下麵我們直接進入主題。 一、ES數據同步 1、數據同步問題 Elasticsearch中的酒店數據來自於mysql資料庫,因此mysql數據發生改變時,Elasticsearch也必須跟著改變,這個就是Elasticsearch與my ...
  • 引言 在我們之前的文章中介紹過使用Bogus生成模擬測試數據,今天來講解一下功能更加強大自動生成測試數據的工具的庫"AutoFixture"。 什麼是AutoFixture? AutoFixture 是一個針對 .NET 的開源庫,旨在最大程度地減少單元測試中的“安排(Arrange)”階段,以提高 ...
  • 經過前面幾個部分學習,相信學過的同學已經能夠掌握 .NET Emit 這種中間語言,並能使得它來編寫一些應用,以提高程式的性能。隨著 IL 指令篇的結束,本系列也已經接近尾聲,在這接近結束的最後,會提供幾個可供直接使用的示例,以供大伙分析或使用在項目中。 ...
  • 當從不同來源導入Excel數據時,可能存在重覆的記錄。為了確保數據的準確性,通常需要刪除這些重覆的行。手動查找並刪除可能會非常耗費時間,而通過編程腳本則可以實現在短時間內處理大量數據。本文將提供一個使用C# 快速查找並刪除Excel重覆項的免費解決方案。 以下是實現步驟: 1. 首先安裝免費.NET ...
  • C++ 異常處理 C++ 異常處理機制允許程式在運行時處理錯誤或意外情況。它提供了捕獲和處理錯誤的一種結構化方式,使程式更加健壯和可靠。 異常處理的基本概念: 異常: 程式在運行時發生的錯誤或意外情況。 拋出異常: 使用 throw 關鍵字將異常傳遞給調用堆棧。 捕獲異常: 使用 try-catch ...
  • 優秀且經驗豐富的Java開發人員的特征之一是對API的廣泛瞭解,包括JDK和第三方庫。 我花了很多時間來學習API,尤其是在閱讀了Effective Java 3rd Edition之後 ,Joshua Bloch建議在Java 3rd Edition中使用現有的API進行開發,而不是為常見的東西編 ...
  • 框架 · 使用laravel框架,原因:tp的框架路由和orm沒有laravel好用 · 使用強制路由,方便介面多時,分多版本,分文件夾等操作 介面 · 介面開發註意欄位類型,欄位是int,查詢成功失敗都要返回int(對接java等強類型語言方便) · 查詢介面用GET、其他用POST 代碼 · 所 ...
  • 正文 下午找企業的人去鎮上做貸後。 車上聽同事跟那個司機對罵,火星子都快出來了。司機跟那同事更熟一些,連我在內一共就三個人,同事那一手指桑罵槐給我都聽愣了。司機也是老社會人了,馬上聽出來了,為那個無辜的企業經辦人辯護,實際上是為自己辯護。 “這個事情你不能怪企業。”“但他們總不能讓銀行的人全權負責, ...