1. 關(guān)于python基礎(chǔ)元素可分為:
數(shù)字類型num潜慎; 字符串str蔓肯; 列表list卿叽;元組tuple彤断; 字典dict漱贱; 集合set;
其中屬于序列的有:str, list, tuple, 通用操作有索引妓笙,切片若河,加法乘法,成員操作寞宫,最大/最
小值萧福,長(zhǎng)度
需要說(shuō)明的是集合set 可實(shí)現(xiàn)元素的去重,不過(guò)集合是無(wú)序的辈赋;
set和dict 的“區(qū)別”:set{1,2,er} ;dict {key1:value1, key2:value2,....}, set 中無(wú)鍵值
set“關(guān)系判斷”需求:(類似于數(shù)學(xué)中的集合操作)鲫忍,包括但不僅限于:交集、差集钥屈、并集
dir()函數(shù):可直接獲取對(duì)象模塊的屬性列表
if 函數(shù)的三目運(yùn)算符悟民,可以減少代碼量 eg: b = 1 if a > 10 else 0
較為詳細(xì)的說(shuō)明可參考:Python中幾個(gè)以“__”開(kāi)頭的方法介紹總結(jié)
關(guān)于python基礎(chǔ)歸納:python基礎(chǔ)
2. requests模塊
.get() , .post() 請(qǐng)求?
其中可設(shè)置的參數(shù)包括 url, parmars, headers, proxies,timeout,cookies等。
.session()? 會(huì)話對(duì)象用來(lái)保持cookie篷就,不過(guò)方法級(jí)別的參數(shù)也不會(huì)被跨請(qǐng)求保持(詳情)
知識(shí)點(diǎn)更新: 1. 解析json響應(yīng):reponse.json 方法同json.loads(response.text)
?????????????????????? 2. 證書(shū)驗(yàn)證設(shè)置 verify=False
?????????????????????? 3. 超時(shí)異常捕獲:requests.get('http://httpbin.org', timeout=0.1)
??????????????????? ?? 4. 使用try...except ...: ReadTimeout射亏, HTTPError,RequestException
5.requests.post的files參數(shù) :?python的requests發(fā)送/上傳多個(gè)文件
文件的寫入操作:
1. os模塊的基礎(chǔ)操作
(1). 文件寫入讀取時(shí),路徑path = "D:\BaiduNetdiskDownload\text" 路徑為電腦中的絕對(duì)路徑智润,不過(guò)在python中由于“\” 為轉(zhuǎn)義字符及舍,因此可能導(dǎo)致路徑名出現(xiàn)錯(cuò)誤,有兩種方法可以解決:
a.path = r"D:\BaiduNetdiskDownload\text"
b. path = "D:\\BaiduNetdiskDownload\\text"
(2). 較為常用的 命令操作:
檢驗(yàn)給出的路徑是否真地存:os.path.exists()
if not os.path.exists(path):
??? os.mkdir(path)
返回一個(gè)路徑的目錄名和文件名:os.path.split()?? 窟绷;分離擴(kuò)展名:os.path.splitext()锯玛;
獲取路徑名:os.path.dirname() ;獲取文件名:os.path.basename()
?eg??os.path.split('/home/swaroop/byte/code/poem.txt') 結(jié)果:('/home/swaroop/byte/code', 'poem.txt')
重命名:os.rename(old钾麸, new)搭配os.listdir()?所有文件和目錄名進(jìn)行文件名或目錄名更改
for root, dirs, files in os.walk(path): #? root 當(dāng)前目錄; dirs 當(dāng)前子目錄炕桨; files 所有文件名
3.? 響應(yīng)解析
a. bs4
find(name,attrs,recursive,text,**wargs)
find_all(name,attrs,recursive,text,limit,**kwargs) 說(shuō)白了饭尝,find()也就是當(dāng)limit=1時(shí)的find_all()。
select(): 標(biāo)簽献宫,屬性钥平,類名,soup.select('p .sister #link1') // 子標(biāo)簽姊途,soup.select("head > title")
b. re 正則
正則表達(dá)式(regular expression)就是用一個(gè)“字符串”來(lái)描述一個(gè)特征涉瘾,然后去驗(yàn)證另一個(gè)“字符串”是否符合這個(gè)特征。p = pattern = " "?
可分類為: 普通字符匹配包括轉(zhuǎn)義捷兰;通配符號(hào)\d,\w,\s,?.?, [ ]等立叛;匹配次數(shù){m,n}, ? ,*, + ;
????????????????? 其他含義字符:^ , $ , \b , | , ( )
主要知識(shí)點(diǎn): 貪婪非貪婪 (默認(rèn)為貪婪模式)贡茅,“秘蛇?”
????????????????????? 反向引用(回溯) \1, \2...
舉例3:表達(dá)式 "<(\w+)\s*(\w+(=('|").*?\4)?\s*)*>.*?" 在匹配 "" 時(shí),匹配結(jié)果是成功顶考。如果 "" 與 "" 不配對(duì)赁还,則會(huì)匹配失敗驹沿;如果改成其他配對(duì)艘策,也可以匹配成功。