Python個(gè)人學(xué)習(xí)筆記 requests庫 requests_html庫——簡單數(shù)據(jù)爬取
發(fā)送請求
數(shù)據(jù)爬取
????標(biāo)簽選擇器
????標(biāo)簽應(yīng)用

requests
⑴ 發(fā)送GET請求 requests.get(url)
返回一個(gè)requests.models.Response對象,可以獲取狀態(tài)碼、狀態(tài)、二進(jìn)制數(shù)據(jù)等。
可以通過字典類型參數(shù)來添加請求頭headers、傳參數(shù)params等。
data參數(shù)可以用于發(fā)送POST請求(requests.post())。
⑵ 獲取二進(jìn)制數(shù)據(jù) content
對于圖片鏈接,保存二進(jìn)制數(shù)據(jù)就可以爬取圖片了。(爬DNX曲繪就是這么爬的 ^皿^)
也可以通過PIL.Image和io.BytesIO模塊實(shí)現(xiàn)直接打開圖片。
⑶ 獲取HTML文本
① text
直接獲取可能會出現(xiàn)亂碼,最好先進(jìn)行編碼。
requests_html
支持requests庫的所有功能,且還有其他新功能。
⑴ 發(fā)送請求
⑵ 生成隨機(jī)請求頭?requests_html.UserAgent().random

數(shù)據(jù)爬取
標(biāo)簽選擇器
xpath選擇器 xpath()
用xpath定位指定元素。返回所有匹配的標(biāo)簽組成的列表。
選擇器常用語法:
? ?
示例
提取紅框中的標(biāo)簽。

CSS選擇器 find()
用CSS定位指定元素。
常用語法:
參數(shù)containing:選擇包含指定文本的標(biāo)簽。
示例


標(biāo)簽應(yīng)用
選擇器所獲取到的標(biāo)簽的屬性:
? ? tag:標(biāo)簽名。
????text:文本內(nèi)容。
????html:HTML內(nèi)容,包括標(biāo)簽以及內(nèi)部所有內(nèi)容。
????xpath:xpath表達(dá)式。
????attrs:標(biāo)簽的所有屬性以及對應(yīng)的值組成的字典。
通過關(guān)鍵字提取數(shù)據(jù) search() / search_all()
search()只匹配第一個(gè)符合條件的內(nèi)容。
返回一個(gè)列表。元素為{}中所對應(yīng)的內(nèi)容(按順序排列)。
search_all()匹配所有符合條件的內(nèi)容。
示例:
提取<a>標(biāo)簽的href、title、文本。

