在Scrapy中如何利用Xpath選擇器從網(wǎng)頁中采集目標數(shù)據(jù)——詳細教程(下篇)
/前言/
前幾天給大家分享了在Scrapy中如何利用Xpath選擇器從網(wǎng)頁中采集目標數(shù)據(jù)——詳細教程(上篇),沒來得及上車的小伙伴可以戳進去看看,今天繼續(xù)上篇的內(nèi)容往下進行。
/具體實現(xiàn)/
9、根據(jù)點贊數(shù)采集的方法,我們可以很快的定位到收藏數(shù),其對應的網(wǎng)頁結構稍微有些不同,但是分析方法是一致的,不再贅述,如下圖所示。
10、這里直接給出調(diào)試的代碼,如下圖所示。
11、不過我們需要的是其中的數(shù)字,這時候就可以利用正則表達式進行匹配,關于正則表達式的文章,之前有過連載,不熟悉正則表達式的小伙伴可以翻看歷史文章,有詳細說明的。在Pycharm中進行調(diào)試,代碼也很簡單,如下圖所示。
爾后將該代碼放入到爬蟲主體文件中即可,記得將“15 收藏”這部分替換成collection_num即可。
12、評論數(shù)相對簡單一些,其有專門的一個標簽,如下圖所示。
13、需要注意的是評論數(shù)這里的標簽不是class,而是href,需要和網(wǎng)頁上對應,否則取出的值為空列表。
14、同收藏數(shù)一樣,仍然要以正則表達式的形式去匹配數(shù)字,可以直接復制收藏數(shù)的代碼,然后將收藏數(shù)collection_num改為評論數(shù)的comment_num即可。
15、關于正文的提取,不同的網(wǎng)頁有不同的結構,而且相對復雜,這里不做細究,整體目標是將網(wǎng)頁內(nèi)容和標簽均提取出來。分析網(wǎng)頁結構,發(fā)現(xiàn)正文內(nèi)容在“entry”標簽下,如下圖所示。
16、之后在scrapyshell調(diào)試,可以得到內(nèi)容的Xpath表達式,如下圖所示。
17、到這里,該網(wǎng)頁中的信息提取的差不多了,結合上面的分析和Xpath表達式,我們得到的整體代碼如下圖所示。
18、爾后進行Debug調(diào)試,查看代碼中獲取的內(nèi)容,如下圖所示,十分清晰。
19、下圖是控制臺部分顯示出的變量結果,與代碼中顯示的內(nèi)容和網(wǎng)頁上的信息都是保持一致的。
至此,關于Xpath表達式的具體應用教程先告一段落。總體來看,我們需要利用F12快捷鍵來審查網(wǎng)頁元素,爾后分析網(wǎng)頁結構并進行交互,然后根據(jù)網(wǎng)頁結構寫出Xpath表達式,習慣性的結合scrapy shell進行調(diào)試,得到調(diào)優(yōu)的表達式,寫入爬蟲文件中去,最后執(zhí)行爬蟲程序或者Debug調(diào)試查看最終的數(shù)據(jù)采集結果。
/小結/
本文基于Xpath理論基礎,主要介紹了Scrapy爬蟲框架中利用Xpath選擇器提取某個網(wǎng)頁中目標數(shù)據(jù)的方法,結合scrapy shell進行調(diào)試,得到調(diào)優(yōu)的表達式,寫入爬蟲文件中去,希望對大家的學習有幫助。
想學習更多關于Python的知識,可以參考學習網(wǎng)址:http://pdcfighting.com/,點擊閱讀原文,可以直達噢~