使用lxml庫抓取Top100貓眼電影清單(點選通路),注意Python Crawler Grab Cat's Eye電影清單在程式過程中使用的正常分辨率,是以你會發現lxml解析庫非常友善。
<>确定資訊元素的結構<h1類"pgc-h-arrow-right"data-track""2"</h1>
首先,要把握網絡元素結構的資訊清晰,比如電影名稱、演員、上映時間等。簡單的分析表明,每部電影的資訊都包含在< dd >标簽中,每個< dd >标簽都包含在<dl >标簽中,是以dl标簽是dd标簽的較大節點,這是它的父節點,如下所示:
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyYw1TbvJnZ-YjY5ADO2gTZ2ADNihTNxkDZwYGNjNzYjdTMiJjY3ITYvwVZnFWbp1yYnB3Lc5Wanlmcv9CXt92YucWbp9WYpRXdvRnL2A3Lc9CX6MHc0RHaiojIsJye.jpg)
當<dd>标簽内的電影資訊提取完成時,您需要使用相同的Xpath表達式提取下一部電影資訊,直到提取所有電影資訊,這顯然是繁瑣的。那麼有沒有更好的方法呢?
<> h1 類"pgc-h-right-arrow"data-track"的基本表達式。5 英寸</h1>
由于每個節點對象都使用相同的 Xpath 表達式來比對資訊,是以很容易想到 for 循環。我們在清單中放置了10個<dd>節點,然後在for循環中周遊每個節點對象,這大大提高了編碼的效率。
通過<dd>節點的父節點<>可以同時比對10個<dd>節點,并将這些節點對象放在清單中。我們将比對 10 < dd > 節點的 Xpath 表達式稱為基線表達式。下面是它的樣子:
下面是>節點對象,該對象< dd 與基線表達式比對,代碼如下所示:
輸出:
<提取資料表達式> h1 類""pgc-h-right-arrow"data-track"。</h1>
由于我們要抓取的資訊包含在< dd >節點中,是以讓我們開始分析< dd >節點中包含的HTML代碼,并選擇一段<dd>節點的電影資訊,如下所示:
分析上面的代碼段并寫出要爬網的資訊的 Xpath 表達式,如下所示:
< h1 類""pgc-h-right-arrow" 資料跟蹤""18" >完整的程式代碼</h1>
上面描述了用于編寫程式的Xpath表達式,以下是正式編寫爬行動物的方法,代碼如下所示:
輸出如下:
開課廣場——人才學習交流平台