抓取熱門標(biāo)簽下的名人名言實驗報告

查看目標(biāo)網(wǎng)頁

http://quotes.toscrape.com 中的每個名言都由 HTML 元素表示,如下所示:

每個名言是以HTML元素表示.png

確定采集實體:

從上圖可以看出,我們需要采集的實體有三個,分別是:標(biāo)簽(tags)、名人名言(text)和作者(author)

建立新項目:quotes

scrapy startproject quotes enter

查看一下創(chuàng)建的項目

創(chuàng)建項目.png

在items.py中定義自己要抓取的數(shù)據(jù)

items.py文件.png

檢查我們的頁面,我們可以看到鏈接到下一個頁面的URL在下面的元素中:
鏈接到下一個頁面.png

在shell中我們可以把它提取出來


提取下一頁規(guī)則.png

編寫myspider.py文件

myspider.py文件.png

現(xiàn)在,在提取數(shù)據(jù)之后,parse() 方法查找到下一頁的鏈接,使用 urljoin() 方法構(gòu)建一個完整的絕對 URL(因為鏈接可以是相對的),并生成(yield)一個到下一頁的新的請求, 其中包括回調(diào)方法(parse)。

使用它,可以根據(jù)我們定義的規(guī)則構(gòu)建復(fù)雜的跟蹤鏈接機制,并根據(jù)訪問頁面提取不同類型的數(shù)據(jù)。

在上面的圖片中,它創(chuàng)建一個循環(huán),跟蹤所有到下一頁的鏈接,直到它找不到要抓取的站點分頁。

運行命令 scrapy crawl quotes -o quotes.json

得到的部分?jǐn)?shù)據(jù)如下

部分爬取結(jié)果展示.png

如何檢查xpath/css定位是否正確

用scrapy shell進行調(diào)試

參考教程:http://scrapy-chs.readthedocs.io/zh_CN/1.0/topics/shell.html

總結(jié)和感悟

在進行數(shù)據(jù)的采集任務(wù)中,采集的規(guī)則和方法是數(shù)據(jù)采集的核心。要對整個網(wǎng)站仔細(xì)地觀察和研究,要非常細(xì)心并且有耐心。同時仍然需要對python進行更多和更深刻的練習(xí),就比如在這次的學(xué)習(xí)中發(fā)現(xiàn)使用xpath可能比css更加快速準(zhǔn)確。還要繼續(xù)努力才能學(xué)好python。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容