Python3 爬蟲實會遇到的一些困惑

来源:https://www.cnblogs.com/huohuohuo1/archive/2018/05/30/9113334.html
-Advertisement-
Play Games

最近完全被python的各種版本,安裝包,工具什麼的弄瘋了,感覺與python相關的東西太多了,一時間讓人分辨不出來到底什麼是乾什麼的。於是,我瘋狂的查閱各種資料,才逐漸慢慢理解了與python相關的各種工具和包。下麵,將我的困惑記錄下來,希望可以和有同樣煩惱的朋友分享! 1. conda、pip和 ...


最近完全被python的各種版本,安裝包,工具什麼的弄瘋了,感覺與python相關的東西太多了,一時間讓人分辨不出來到底什麼是乾什麼的。於是,我瘋狂的查閱各種資料,才逐漸慢慢理解了與python相關的各種工具和包。下麵,將我的困惑記錄下來,希望可以和有同樣煩惱的朋友分享!

1. conda、pip和anaconda到底是幹嘛的,有什麼區別?

在各種網站上找了好久,最後發現其實這些問題都可以從官方網站上找到。關於conda和anaconda可以從anaconda官網找到,關於pip可以從python官網找到。下麵我簡單摘錄一些網站上的說明供大家參考。

anaconda、miniconda和conda

什麼是anaconda 
anaconda是一種開源的,易安裝的高性能python和R發行版,它集成了conda包和環境管理工具,並且有1000+免費社區支持的開源包。

It is an open source, easy-to-install high performance Python and R distribution, with the conda package and environment manager and collection of 1,000+ open source packages with free community support.

為什麼要用anaconda
安裝python作為終端一點也不好玩。許多科學包要求python的特定版本才能運行,並且它很難使各種包交互。很難保持更新。anaconda發行版可以快速簡單的獲取和更新這些包。Python學習交流群125240963每天更新資料,包括2018最新企業級項目案例

Installing Python in a terminal is no joy. Many scientific packages require a specific version of Python to run, and it’s difficult to keep them from interacting with each other. It is even harder to keep them updated. Anaconda Distribution makes getting and maintaining these packages quick and easy.

什麼是miniconda?
miniconda是沒有1000+開源包的發行版,使用miniconda你只能使用conda命令安裝你想用的包。

It’s Anaconda Distribution without the collection of 1,000+ open source packages. 
With Miniconda you install only the packages you want with the conda command,

什麼是anaconda navigator?
anaconda navigator 可以非常容易的使用圖形化python編程而不需要使用命令行。

Anaconda Navigator is an easy way to use graphical Python programs without having to use command line commands.

從這裡我們可以知道,anaconda是一個平臺,而conda是包和環境管理工具。 
在python官方文檔中的安裝工具建議中可以看到,pip是一個安裝python包的工具。 
那麼pip與conda有什麼區別呢? 
conda是Anaconda Python安裝的軟體包管理工具。 Anaconda Python是Continuum Analytics的一個發行版,專門針對科學界,尤其是在二進位擴展安裝通常很困難的Windows上。 
Conda是一個完全獨立的工具,用於管理,虛擬化和輪式,但在包管理,虛擬環境管理和二進位擴展的部署方面提供了許多它們的組合功能。 
Conda不從PyPI安裝軟體包,只能從官方的Continuum存儲庫或anaconda.org(用戶提供的conda軟體包的地方)或本地(例如內聯網)軟體包伺服器進行安裝。 但是請註意,可以將pip安裝到並且與conda一起工作來管理來自PyPI的分發。

conda is the package management tool for Anaconda Python installations. Anaconda Python is a distribution from Continuum Analytics specifically aimed at the scientific community, and in particular on Windows where the installation of binary extensions is often difficult.
Conda is a completely separate tool to pip, virtualenv and wheel, but provides many of their combined features in terms of package management, virtual environment management and deployment of binary extensions.
Conda does not install packages from PyPI and can install only from the official Continuum repositories, or anaconda.org (a place for user-contributed conda packages), or a local (e.g. intranet) package server. However, note that pip can be installed into, and work side-by-side with conda for managing distributions from PyPI.

2、什麼叫做包,常用的包有哪幾個,每個包的作用是什麼?

python的官方文檔可以看到,模塊概念的引入是為了方便代碼復用,提高代碼的可維護性的。如果程式越寫越長,那麼程式的可讀性就會越來越差,程式的 層次結構也會越來越不清晰。這時,我們可以把一個較長的程式分成很多容易維護的小文件,其類似於c語言中.h文件和.c文件的作用。

If you quit from the Python interpreter and enter it again, the definitions you have made (functions and variables) are lost. Therefore, if you want to write a somewhat longer program, you are better off using a text editor to prepare the input for the interpreter and running it with that file as input instead. This is known as creating a script. As your program gets longer, you may want to split it into several files for easier maintenance. You may also want to use a handy function that you’ve written in several programs without copying its definition into each program.
To support this, Python has a way to put definitions in a file and use them in a script or in an interactive instance of the interpreter. Such a file is called a module; definitions from a module can be imported into other modules or into the main module (the collection of variables that you have access to in a script executed at the top level and in calculator mode).

而包的概念的引入是為了更方便的組織各個模塊,防止相同名稱的模塊發生衝突,類似於c#或c++中的命名空間的作用。比如,兩個不同包PA和PB都有同一個名字為M的模塊,那麼PA.M就表示PA包下麵的模塊M,PB.M就表示PB包下麵的模塊M。

Packages are a way of structuring Python’s module namespace by using “dotted module names”. For example, the module name A.B designates a submodule named B in a package named A. Just like the use of modules saves the authors of different modules from having to worry about each other’s global variable names, the use of dotted module names saves the authors of multi-module packages like NumPy or the Python Imaging Library from having to worry about each other’s module names.

更多關於包和模塊的概念可以閱讀下麵兩篇文章: 
廖雪峰-模塊 
python基礎-模塊和包介紹

3、如何安裝?

anaconda的安裝挺簡單的,只要從官方網站下載直接安裝就可。pip的安裝可以參考下麵的文章。 
三步走安裝pip 
windows下麵安裝Python和pip終極教程

4、python學習資源

這些資源都是我在網上找到的,僅僅在這裡列出來分享一下。

  1. 強烈推薦廖雪峰的官方網站,這真是小白的福音,不管是python2還是python3。裡面的內容通俗易懂,按照廖雪峰的話說就是

    中文,免費,零起點,完整示例,基於最新的Python 3版本。

  2. 知乎-Python 有哪些好的學習資料或者博客?,這裡面有很多牛人提供了各種資源和鏈接

  3. code123.cc,這裡面提供了許多實踐項目,可以幫助我們快速成長。

  4. 27 個機器學習、數學、Python 速查表,這裡麵包含了許多機器學習和python的資料

  5. 150 多個 ML、NLP 和 Python 相關的教程,這篇文章來自於伯樂線上,這個網站裡面也有很多學習資源,都非常好。

  6. python官方文檔,當然官方的最權威,不過建議可以當做工具書來查,否則整天看這個不得無聊死!

  7. 網易雲課堂,作為國內領先的線上課程學習平臺,網易在這方面做的確實挺好。這裡面有非常多的課程,可以幫助你快速的學習。當然,也有很多慕課平臺,不管是國內的還是國內的,裡面肯定也有很多資源,在此就不在一一列舉了。

結論

當然,有這麼多資源並不能保證你能學會。畢竟,只有真真正的去學你才能真真正正的學會,否則,收集了這麼多資源也沒什麼用。其實,很多人有這種通病,有時候心血來潮,想學某個東西,網上下了一大堆資料,百度網盤存了一大堆資源,結果也只是放在那裡堆灰塵而已,甚至某天發現自己有這麼多資源的時候還很驚訝! 
說了那麼多,其實,最重要的是去做,去行動,去實踐。


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

-Advertisement-
Play Games
更多相關文章
  • 在Flask中鉤子函數是使用特定的裝飾器的函數。為什麼叫做鉤子函數呢,是因為鉤子函數可以在正常執行的代碼中,插入一段自己想要執行的代碼,那麼這種函數就叫做鉤子函數。 before_first_request:Flask項目第一次部署後會執行的鉤子函數。 before_request:請求已經到達了F ...
  • 博客園是面向開發者的知識分享社區,不允許發佈任何推廣、廣告、政治方面的內容。 博客園首頁(即網站首頁)只能發佈原創的、高質量的、能讓讀者從中學到東西的內容。 如果博文質量不符合首頁要求,會被工作人員移出首頁,望理解。如有疑問,請聯繫[email protected]。 ...
  • 大家好,併發編程 進入第十章。好了,今天的內容其實還挺多的,我準備了三天,到今天才整理完畢。希望大家看完,有所收穫的,能給小明一個贊。這就是對小明最大的鼓勵了。為了更好地銜接這一節,我們先來回顧一下上一節的內容。 上一節「」,我們首先介紹了,如何創建一個協程對象.主要有兩種方法 通過async關鍵字 ...
  • 在瞭解完了 Python函數基礎篇 之後,本篇的存在其實是為了整合知識,由於該篇的知識是否雜亂,故大家可以通過點開點連接直接進入其詳細介紹,該篇主要大致的介紹一下幾個知識點: 一、Python的迭代器和生成器 二、Python的內置函數 三、Python的open函數之文件處理 四、Python的遞 ...
  • 1 flask script擴展庫 概念 : 是一個flask終端運行的解析器 ,因為項目完成以後,代碼改動會有風險,所以藉助終端完成不同啟動項的配置 安裝 使用 執行程式需要在啟動項輸入命令 2 Blueprint藍圖 概念 : Blueprint通過把實現不同功能的module分開,實現分類功能 ...
  • GOPATH設置 僅僅安裝好msi是不夠的,還需要配置一些東西:`GOPATH` Go從1.1版本到1.7必須設置這個變數,而且不能和Go的安裝目錄一樣。 這個目錄用來存放Go源碼,Go的可運行文件,以及相應的編譯之後的包文件。 所以這個目錄下麵有三個子目錄:src、bin、pkg 從go 1.8開... ...
  • 將網站根目錄配置到項目的web目錄 打開網站訪問的是web/index.php這時打開預設頁面 訪問一下其他頁面,發現瀏覽器地址的url攜帶了一個參數 http://www.test.com/index.php?r=site%2Fabout r=site/about,這是一個路由參數 site應該是 ...
  • 前言 近年,Spring Cloud儼然已經成為微服務開發的主流技術棧,在國內開發者社區非常火爆。我近年一直在一線互聯網公司(攜程,拍拍貸等)開展微服務架構實踐,根據我個人的一線實踐經驗和我平時對Spring Cloud的調研,我認為Spring Cloud技術棧中的有些組件離生產級開發尚有一定距離 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...