python爬蟲入門(1)-開發環境配置

来源:https://www.cnblogs.com/codingchen/archive/2023/10/24/17459376.html
-Advertisement-
Play Games

所謂的爬蟲,就是通過模擬點擊瀏覽器發送網路請求,接收站點請求響應,獲取互聯網信息的一組自動化程式。 也就是,只要瀏覽器(客戶端)能做的事情,爬蟲都能夠做。 現在的互聯網大數據時代,給予我們的是生活的便利以及海量數據爆炸式的出現在網路中。除了網頁,還有各種手機APP,例如微信、微博、抖音,一天產生高達 ...


      所謂的爬蟲,就是通過模擬點擊瀏覽器發送網路請求,接收站點請求響應,獲取互聯網信息的一組自動化程式。 也就是,只要瀏覽器(客戶端)能做的事情,爬蟲都能夠做。
      現在的互聯網大數據時代,給予我們的是生活的便利以及海量數據爆炸式的出現在網路中。除了網頁,還有各種手機APP,例如微信、微博、抖音,一天產生高達億計的狀態更新信息, 百度任意一個詞條,也可以得到無數相關信息,但是我們得到了海量的信息,但是大多數都是無效的垃圾信息,在海量的信息中,要篩選來得到有用的信息,手動篩選不僅效率慢,還費時;但利用爬蟲和資料庫,不僅可以保存相關特定的數據,還可以通過特定的程式來篩選出有用的信息。
      可以用來爬蟲的語言有很多,常見的有PHP,JAVA,C#,C++,Python等,由於Python有足夠相關的庫,用python做爬蟲相對比較簡單,且功能比較齊全。
下麵就先瞭解一下基於python爬蟲基本配置:
1、由於一直是用基於anaconda平臺的python,繼續使用,具體安裝可以參考python入門基礎(1)—安裝
2、為了方便大家安裝,特意彙總了一下可能需要安裝python相關庫,直接在Anaconda prompt中粘貼以下代碼,即可自動安裝,直至安裝完成。

pip3 install urllib3 -i https://mirrors.aliyun.com/pypi/simple/
pip3 install requests -i https://mirrors.aliyun.com/pypi/simple/
pip3 install selenium -i https://mirrors.aliyun.com/pypi/simple/
pip3 install chromedriver -i https://mirrors.aliyun.com/pypi/simple/
pip3 install phantomjs -i https://mirrors.aliyun.com/pypi/simple/
pip3 install lxml -i https://mirrors.aliyun.com/pypi/simple/
pip3 install beautifulsoup4 -i https://mirrors.aliyun.com/pypi/simple/
pip3 install pyquery -i https://mirrors.aliyun.com/pypi/simple/
pip3 install pymysql -i https://mirrors.aliyun.com/pypi/simple/
pip3 install pymongo -i https://mirrors.aliyun.com/pypi/simple/
pip3 install redis -i https://mirrors.aliyun.com/pypi/simple/
pip3 install flask -i https://mirrors.aliyun.com/pypi/simple/
pip3 install django -i https://mirrors.aliyun.com/pypi/simple/
pip3 install jupyter -i https://mirrors.aliyun.com/pypi/simple/
pip3 install splash -i https://mirrors.aliyun.com/pypi/simple/
pip3 install docker -i https://mirrors.aliyun.com/pypi/simple/
pip3 install scapy -i https://mirrors.aliyun.com/pypi/simple/
pip3 install spyder -i https://mirrors.aliyun.com/pypi/simple/
pip3 install matplotlib -i https://mirrors.aliyun.com/pypi/simple/
pip3 install pandas -i https://mirrors.aliyun.com/pypi/simple/
pip3 install scikit-learn -i https://mirrors.aliyun.com/pypi/simple/
pip3 install GeckoDriver -i https://mirrors.aliyun.com/pypi/simple/
pip3 install PhantomJS -i https://mirrors.aliyun.com/pypi/simple/
pip3 install aiohttp -i https://mirrors.aliyun.com/pypi/simple/
pip3 install tesserocr -i https://mirrors.aliyun.com/pypi/simple/
pip3 install RedisDump -i https://mirrors.aliyun.com/pypi/simple/
pip3 install Tornado -i https://mirrors.aliyun.com/pypi/simple/
pip3 install Charles -i https://mirrors.aliyun.com/pypi/simple/
pip3 install mitmproxy -i https://mirrors.aliyun.com/pypi/simple/
pip3 install mitmdump -i https://mirrors.aliyun.com/pypi/simple/
pip3 install Appium -i https://mirrors.aliyun.com/pypi/simple/
pip3 install pyspider -i https://mirrors.aliyun.com/pypi/simple/
pip3 install Scrapy-Splash -i https://mirrors.aliyun.com/pypi/simple/
pip3 install Scrapy-Redis -i https://mirrors.aliyun.com/pypi/simple/
pip3 install Docker -i https://mirrors.aliyun.com/pypi/simple/
pip3 install Scrapyd -i https://mirrors.aliyun.com/pypi/simple/
pip3 install Scrapyd-Client -i https://mirrors.aliyun.com/pypi/simple/
pip3 install Scrapyd API -i https://mirrors.aliyun.com/pypi/simple/
pip3 install Scrapydrt -i https://mirrors.aliyun.com/pypi/simple/
pip3 install Gerapy -i https://mirrors.aliyun.com/pypi/simple/
pip3 install pygame -i https://mirrors.aliyun.com/pypi/simple/
pip3 install nbconvert -i https://mirrors.aliyun.com/pypi/simple/

至於每個庫是具體是做什麼用的,大致可以分為以下幾類:

1)請求庫:requests 、Selenium、ChromeDriver、GeckoDriver、phantomJS、aiohttp,主要是用來實現http請求操作。

2)解析庫:lxml、BeautifulSoup、pyquery、tesserocr,抓取網頁代碼後,需要從網頁中提取有用信息,解析庫就提供了非常強勁的解析方法,可以高效、便捷從網頁代碼中提取有用的信息。

3)資料庫:Mysql、MongoDB、redis,資料庫作為數據存儲的重要部分,也是爬蟲中必不可少的一部分,主要用來存儲提取到的有用信息。具體安裝,自行百度一下。

4)存儲庫:PyMySQL,PyMongo、redis-py、redisDump,你可以將這幾個當成是python程式與資料庫mysql/mongodb/redis等介面,資料庫用來提供存儲服務,保存數據,而存儲庫是用來在兩者之間進行交互的。

5)web庫:flask、tornado庫,主要是用web庫程式來搭建一些API介面,供我們的爬蟲使用。

6)app庫:Charles、mitmproxy、mitmdump、Appium,手機APP數據量也非常大,爬蟲也可以抓取APP的數據,因此可以用一些抓包技術來抓取數據。

7)爬蟲框架:pyspider、Scrapy、Scrapy-Splash、Scrapy-redis等,框架可以簡化代碼,架構清晰,只需要關心爬取邏輯。

8)部署相關庫:Docker、Scrapyd、Scrapyd-Client、Scrapyd API 、Scrapydrt、Gerapy。

        如果想要大規模抓取數據,就會用到分散式爬蟲。對於分散式當使用分散式爬蟲,需要多台主機,每台主機有多個爬蟲任務,但源代碼其實只有一份。
  將一份代碼同時部署到多台主機上,進行協同運行。Scrapy有一個擴展組件,叫作 Scrapyd,只需要安裝該擴展組件,即可遠程管理Scrapy 任務,
  包括部署源碼、啟動任務、監聽任務等。另外,還有 Scrapyd-Client 和 Scrapyd API來幫助我們更方便地完成部署和監聽操作。
         另外一種部署方式,那就是 Docker 集群部署。只需要將爬蟲製作為 Docker 鏡像,只要主機安裝了Docker,就可以直接運行爬蟲,而無需再去擔心環境配置、版本問題。

後面我們再分別針對上述幾個部分分別作詳細介紹。

 

 

翻譯

搜索

複製


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

-Advertisement-
Play Games
更多相關文章
  • 本文主要介紹了python flask後端開發項目中的相關知識,包括flask項目結構、flask部署方式、前後端對接、後端介面測試工具。 ...
  • GeoIP2是一種IP地址定位庫,它允許開發人員根據`IP`地址查找有關位置和地理位置的信息。它使用`MaxMind`公司的IP地址資料庫,並提供一個方便的Python API。GeoIP2可以用於許多不同的應用程式,例如網站分析、廣告定位和身份驗證。GeoIP2提供了許多不同的信息,例如國家、城市... ...
  • Java替換RequstBody和RequestParam參數的屬性 本文主要講解在Java環境中如何替換RequestBody和RequestParam參數中的屬性 背景 近期由於接手的老項目中存在所有介面中新增一個加密串來給介面做一個加密效果(項目歷史原因,不方便上Jwt授權這套),所以就研究了 ...
  • `wmproxy`將用`Rust`實現`http/https`代理, `socks5`代理, 反向代理, 靜態文件伺服器,後續將實現`websocket`代理, 內外網穿透等, 會將實現過程分享出來, 感興趣的可以一起造個輪子法, 一些實現類nginx可能在rust會碰到的問題,一起探討下一些實現在... ...
  • 關註【TechLeadCloud】,分享互聯網架構、雲服務技術的全維度知識。作者擁有10+年互聯網服務架構、AI產品研發經驗、團隊管理經驗,同濟本復旦碩,復旦機器人智能實驗室成員,阿裡雲認證的資深架構師,項目管理專業人士,上億營收AI產品研發負責人。 一、引言 在軟體開發的世界里,開發環境的選擇與配 ...
  • 大家好,我是棧長。 今天分享一篇國內外程式員區別對比的好文: https://www.zhihu.com/question/497793332/answer/2216734220 原文作者是知乎的一位匿名用戶,個人感覺絕大部分內容寫的還是挺中肯的,沒有故意貶低或者抬高哪一邊。 下麵是正文。 我是在美 ...
  • 1.2 註釋 作用:在代碼中加一些說明和解釋,方便自己或其他程式員閱讀代碼 兩中格式 單行註釋: 通常放在一行代碼的上方,或者一條語句的末尾,對該行代碼說明 // 這樣的是單行註釋 多行註釋: 通常放在一段代碼的上方,對該段代碼做整體說明 /* 這種的是多行註釋 可以寫好多行 */ 提示:編譯器在編 ...
  • 基本概念 支持反射的語言可以在程式編譯期將變數的反射信息,如欄位名稱、類型信息、結構體信息等整合到可執行文件中,並給程式提供介面訪問反射信息,這樣就可以在程式運行期獲取類型的反射信息,並且有能力修改它們。 Go語言提供了 reflect 包來訪問程式的反射信息。 Refelct解析 Refelct包 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...