python網路爬蟲(五)

2021-10-05 15:58:42 字數 1527 閱讀 6502

資訊標誌的三種形式:xml,json,yaml

xml例項:

tian

cai北京

516002

json例項:

}yaml例項:

firstname:tian

lastname:cai

address:

city:北京

zipcode:516002

xml:最早的通用資訊標記語言,可擴充套件性好,但繁瑣;internet上的資訊互動於傳遞

json:資訊有型別,適合程式處理,較xml簡介;無注釋

yaml:資訊無型別,文字資訊比例最高,可讀性好;各類系統的配置檔案,有注釋易讀

方法一:完整解析資訊的標記形式,再提取關鍵資訊

需要標記解析器例如:bs4庫的標籤樹遍歷

優點:資訊解析準確

缺點:提取過程繁瑣,速度慢

方法二:無視標記形式,直接搜尋關鍵資訊

對資訊的文字查詢函式即可

優點:提取過程簡潔,速度較快

缺點:提取結果準確性與資訊內容相關

融合方法:結合形勢解析與搜尋方法,提取關鍵資訊需要標記解析器及文字查詢函式

<>.find_all(name, attrs, recursive, string, **kwargs)

返回乙個列表型別,儲存查詢的結果

name:對標籤名稱的檢索字串 soup.find_all([『a』,『b』])

attrs:對標籤屬性值的檢索字串,可標註屬性檢索 soup.find_all(『p』, 『course』) soup.find_all(id=『link1』)

recursive:是否對子孫全部檢索,預設true soup.find_all(『a』, recursive=false)

string:<>…中字串區域的檢索字串 soup.find_all(string = re.compile(『python』))

(…) 等價於 .find_all(…) soup(…) 等價於 soup.find_all(…)

擴充套件方法

說明<>.find()

搜尋且只返回乙個結果,字串型別,同 .find_all()引數

<>.find_parents()

在先輩節點中搜尋,返回列表型別,同.find_all()引數

<>.find_parent()

在先輩節點中返回乙個結果,字串型別,同.find_all()引數

<>.find_next_siblings()

在後續平行節點中搜尋,返回列表型別,同.find_all()引數

<>.find_next_sibling()

在後續平行節點中返回乙個結果,字串型別,同.find_all()引數

<>.find_previous_siblings()<>.find_previous_siblings()

在前序平行節點中搜尋,返回列表型別,同.find_all()引數

<>.find_previous_sibling()

在前序平行節點中返回乙個結果,字串型別,同.find_all()引數

python網路爬蟲筆記(五)

一 python的類物件的繼承 1 所有的父類都是object類,由於類可以起到模組的作用,因此,可以在建立例項的時候,巴西一些認為必須要繫結的屬性填寫上去,通過定義乙個特殊的方法 init 繫結屬性值 注意 init 方法的第乙個引數永遠是self,表示建立的是例項本身,在 init 方法內部,就...

Python網路爬蟲

找到url,也就是相當於入口,找到你要爬取的鏈結,獲取整個頁面資料 使用正規表示式,匹配到你想要爬取的內容,這裡使用的主要是正規表示式和一些常用的開源庫 最後一步就是寫入文字以及儲存問題了,如文字檔案 資料庫 coding utf 8 是用來指定檔案編碼為utf 8 from urllib impo...

python網路爬蟲

這篇部落格簡單的實現了乙個網路爬蟲指令碼,所謂網路爬蟲就是從 某乙個頁面 通常是首頁 開始,讀取網頁的內容,找到在網頁中的其它鏈結位址,然後通過這些鏈結位址尋找下乙個網頁,這樣一直迴圈下去,直到把這個 所有的網頁都抓取完為止。下面就是乙個簡單地網路爬蟲程式 note 這個命令的意思是,從爬去尋找關鍵...