零基礎小白也想用6小時學會Python▶清華技能坊——20200820
連結:
https://www。
bilibili。com/video/BV1G
A411n7yx
三講部分
例項化
例項(Instance)是根據類創建出來的一個個具體的“物件“
呼叫類方法、訪問類屬性
每個物件都擁有相同的方法,但各自的屬性可能不同
構造方法
__init__
方法:在建立例項的時候,就給屬性賦值
繼承
繼承:從已有的類派生出新的類(子類)
子類繼承父類的資料屬性和行為
可以呼叫父類的函式
可以擴展出新的方法
或者覆蓋父類的方法
多型
多型:允許對不同的物件進行相同的操作。
面向物件的三大特性
封裝:隱藏不必要的內部實現細節,對外公開介面。
繼承:從已有的類派生出新的類(子類),子類繼承父類的資料屬性和行為,並能根據自己的需求擴展出新的方法或者覆蓋父類的方法。
多型:允許對不同的物件進行相同的操作。
模組
內建模組
模組/庫/包
開箱即用,"batteries included"
模組(module):一個。py檔案就稱之為一個模組
包(package):有層次的檔案目錄結構,可能有n個模組或n個子包
庫(library):能完成一定功能、供使用者使用的程式碼集合(抽象概念),在python中是包和模組的形式。
優點
提高了程式碼的可維護性
不必從零開始
時間與日期
time模組
datetime模組:重新封裝了time模組,提供更多介面
中文日期:locale模組
根據計算機使用者所使用的語言,所在國家或者地區,以及當地的文化傳統所定義的一個軟體執行時的語言環境。
隨機數:random模組
可以控制隨機數種子
更復雜的隨機數:numpy模組
PyQt5*
更高階的介面:pyqt5模組
三種常見的import 方法
import
L3_inherit
#直接匯入
import
L3_inherit
as
CC
#匯入並且是一個期名
from
L3_inherit
import
Hanxin
,
Libai
#選擇性匯入一部分
第三方庫
操作Word:python-docx模組
操作Excel:xlwings模組
操作Pdf:PyPDF2模組
科學計算:numpy模組
資料分析:pandas模組
模糊字串匹配:fuzzywuzzy
中文分詞工具:jieba
開源計算機視覺庫:OpenCV
深度學習框架:pytorch, tensorflow,keras。。。。。
影象操作:pillow模組
玩轉檔案
路徑處理
工作目錄
當前工作目錄(cwd,current working directory):所有沒有從根目錄開始的檔名或路徑,都假定在當前工作目錄下。
相對路徑、絕對路徑
絕對路徑:總是從根目錄開始。Window系統中以碟符(C:、E:)作為根目錄,而OS X或者Linux系統中以/作為根目錄。 相對路徑指的是檔案相對於當前工作目錄所在的位置。
斜槓
Windows系統:右斜槓\(反斜槓),或者轉義斜槓
\\
OS X或者Linux系統:左斜槓/(除號)
Python中不做區分
跨平臺的時候需要考慮相容性
os模組
內建模組os提供了作業系統服務,其子模組os。path可以用於路徑處理
路徑處理常用操作:檢視、建立、刪除、改名、複製、移動、檔名的拆分與組合……根據需要,現用現查
舉例:若資料夾不存在則建立
import
os
folder_name
=
”txt_samples”
existance
=
os
。
path
。
exists
(
folder_name
)
#判斷檔案/資料夾是否存在
(
existance
)
if
not
existance
:
#若資料夾不存在則建立
os
。
mkdir
(
folder_name
)
file_name
=
os
。
path
。
join
(
folder_name
,
“summer。txt”
)
#合併檔名
具體檔案處理舉例
辦公文件 Word
docx文件的格式組成
docx檔案本質上是一個
ZIP檔案
主要內容儲存為
XML格式
document。xml檔案包含了文件的主要文字內容
段落物件:paragraph
➢縮排、間距、對齊……
最基本的單位:run
➢字型、大小、顏色。。。。。
Excel
xlwings
,讓excel飛起來
安裝:
pip install xlwings
匯入:
import xlwings as xw
使用步驟:
開啟應用-操作-退出應用
pandas
不能在原excel中修改,只能讀取、寫入新表格
讀寫速度快:不需要開啟Excel應用程式
PPT
python-pptx
*
安裝:pip install python-pptx
匯入:import pptx
PyPDF2
三劍客:PdfFileMerger;PdfFileReader,PdfFileWriter
資料檔案
CSV
逗號分隔值檔案(Comma-Separated Values,CSV)
以純文字形式儲存
表格資料
(數字和文字)
CSV檔案由任意數目的記錄組成,每條記錄之間以某種換行符分
每條記錄由欄位組成,欄位間的分隔符是其它字元或字串,最常見的是逗號或製表符
JSON
JSON(JavaScript Object Notation,JS物件簡譜)是一種輕量級的純文字格式,用於儲存和表示資料
完全獨立於程式語言
易於人類閱讀和機器解析
網路傳輸效率高
內建模組json,讀&寫
資料處理入門
資料處理安裝必備庫
科學計算:NumPy
資料處理:pandas
資料視覺化:matplotlib
NumPy
Numerical Python,科學計算的基礎包
快速、高效的
高維陣列物件ndarray
從序列建立陣列
向量運算
相同尺寸:逐元素運算
不同尺寸:標量x向量:向量的數乘
陣列廣播:廣播維必須為1,廣播維之外的維度相同
可以有效的進行運算
資料處理:pandas
Panel data或Python data analysis,基於NumPy,是資料分析的基礎包
源自金融資料應用,支援時間序列分析&非時間序列分析
快速、便捷地處理結構化資料(索引、資料對齊)
靈活處理缺失資料
Series:序列型資料結構(一維);索引+值
DataFrame:表格型資料結構(二維或高維);行/列+值
構造DataFrame的辦法有很多
常用:直接傳入一個由等長列表或NumPy陣列組成的字典
一圖抵千言,A picture is worth a thousand words。
視覺化的作用:真實、準確地展示資料;揭示資料的關係、規律
資料視覺化常用工具
Python:
matplotlib
,Seaborn,plotline
R:ggplot2
軟體或線上工具:Excel,Power BI,Echart,Tableau
Matplotlib繪圖
基本操作:從序列畫圖
資料視覺化應用舉例
分類效果;誤差分佈;模擬與實測比較;t-sne高維特徵
時間序列;聚類;三維資料;強調排序和差距
日期活躍情況;層次聚類;相關度;變化趨勢
網路爬蟲入門
什麼是網路爬蟲?
按照一定的規則,自動從網路中提取資訊的程式。
網路爬蟲有什麼用?
獲取資訊
自動操作、省時省力
為什麼要用Python寫網路爬蟲?
字串處理方便
第三方庫完善
網頁的組成
骨架:HTML
Hyper Text Markup Language,超文字標記語言
透過不同型別的標籤,不同的元素相互巢狀和組合,形成網頁的框架
肌肉:Javascript
透過JS指令碼定義網頁的行為
例:互動、動畫、播放音樂或影片。
正則表示式
內建模組:re
正則表示式(regular expression):一種字串匹配的模式(pattern)
用途:在一個字串中搜索、替換、提取符合某個條件的子串
爬蟲的法律問題
爬蟲玩得好,監獄進的早;資料玩的溜,牢飯吃個夠
侵犯公民個人資訊罪
:採集公民的姓名、身份證件號碼、通訊通訊聯絡方式、住址、賬號密碼、財產狀況、行蹤軌跡等個人資訊,並將之用於非法途徑的
現金貸風控、不合規的P2P、賭博類遊戲、黑五類產品。。。。
友情提示:爬蟲可能違法了
新三板掛牌公司涉竊取30億條個人資訊,非法牟利超千萬元
非法獲取計算機資訊系統資料罪
:爬蟲程式規避網站經營者設定的反爬蟲措施或者破解伺服器防抓取措施,或強行訪問正常情況不能到達的頁面;非法獲取相關資訊
破壞計算機資訊系統罪
:爬蟲程式干擾被訪問的網站正常運營(近乎DDOS的請求頻率,造成伺服器癱瘓)
法律依據:
中華人民共和國網路安全法
灰色產業
12306刷票軟體
社交平臺殭屍粉、直播平臺刷量、電商刷單、偷取社群內容
爬蟲技術本身中立,法律不禁止爬蟲
搜尋引擎、聚合導航、資料分析、人工智慧等業務,都需要基於爬蟲技術
不要爬取個人資訊,不要利用爬蟲非法獲利,不要爬取網站的付費內容
Ajax抓取 Ajax(Asynchronous JavaScript and XML,非同步JavaScript 和XML)
採用Ajax、前端模組化工具來構建
其API介面通常採用JSON格式
爬取方法
分析其後臺Ajax介面
使用Selenium、Splash 等庫來實現模擬JavaScript渲染
檢視網路傳輸資料流的方法
右鍵→檢視元素→點選網路
快捷鍵:F12
選單→Web開發者-→網路
進階方向*
提升爬蟲效率
多執行緒、多程序
分散式、叢集化
大資料儲存
提升反爬技術
瀏覽器控制:Selenium、Splash
APP/JavaScript逆向
代理池
驗證碼破解