天天看點

Python lxml解析庫實戰應用确定資訊元素結構基準表達式提取資料表達式完整程式代碼

作者:開課吧科科

使用lxml庫抓取Top100貓眼電影清單(點選通路),注意Python Crawler Grab Cat's Eye電影清單在程式過程中使用的正常分辨率,是以你會發現lxml解析庫非常友善。

<>确定資訊元素的結構<h1類"pgc-h-arrow-right"data-track""2"</h1>

首先,要把握網絡元素結構的資訊清晰,比如電影名稱、演員、上映時間等。簡單的分析表明,每部電影的資訊都包含在&lt; dd &gt;标簽中,每個&lt; dd &gt;标簽都包含在&lt;dl &gt;标簽中,是以dl标簽是dd标簽的較大節點,這是它的父節點,如下所示:

Python lxml解析庫實戰應用确定資訊元素結構基準表達式提取資料表達式完整程式代碼

當&lt;dd&gt;标簽内的電影資訊提取完成時,您需要使用相同的Xpath表達式提取下一部電影資訊,直到提取所有電影資訊,這顯然是繁瑣的。那麼有沒有更好的方法呢?

<> h1 類"pgc-h-right-arrow"data-track"的基本表達式。5 英寸</h1>

由于每個節點對象都使用相同的 Xpath 表達式來比對資訊,是以很容易想到 for 循環。我們在清單中放置了10個&lt;dd&gt;節點,然後在for循環中周遊每個節點對象,這大大提高了編碼的效率。

通過&lt;dd&gt;節點的父節點&lt;&gt;可以同時比對10個&lt;dd&gt;節點,并将這些節點對象放在清單中。我們将比對 10 &lt; dd &gt; 節點的 Xpath 表達式稱為基線表達式。下面是它的樣子:

下面是&gt;節點對象,該對象&lt; dd 與基線表達式比對,代碼如下所示:

輸出:

<提取資料表達式> h1 類""pgc-h-right-arrow"data-track"。</h1>

由于我們要抓取的資訊包含在&lt; dd &gt;節點中,是以讓我們開始分析&lt; dd &gt;節點中包含的HTML代碼,并選擇一段&lt;dd&gt;節點的電影資訊,如下所示:

分析上面的代碼段并寫出要爬網的資訊的 Xpath 表達式,如下所示:

< h1 類""pgc-h-right-arrow" 資料跟蹤""18" >完整的程式代碼</h1>

上面描述了用于編寫程式的Xpath表達式,以下是正式編寫爬行動物的方法,代碼如下所示:

輸出如下:

開課廣場——人才學習交流平台