Scrapy 使用示例:從 Xpath 到 Webdriver

本文用於以後快速創建爬蟲項目
誤點進來的朋友可以關閉了,因爲本文沒有啥價值?

準備

pip install scrapy
pip install selenium
下載 chrome webdriver,放在環境變量裏

scrapy shell 或 控制檯

打開要爬取的網站,命令行輸入
scrapy shell your-url
如果爬取的是動態頁面、QQ空間一類需要登陸的網站,則打開瀏覽器的控制檯。
命令行使用:response.xpath(‘RULE’).extract()
瀏覽器使用:$x(‘RULE’)
這裏的 RULE 是 xpath 規則,自行百度學習 xpath 語法

至此,已獲得網站裏你需要的內容的 xpath,可以開始寫代碼了。

開始寫代碼

創建項目

命令行 scrapy startproject project-name
cd 進去,開始爬是 scrapy crawl spider-name ,當然現在還沒寫代碼,先放着

工作流程

不知道從哪說起,先看着目錄說一下 scrapy 工作流程:

從最初定義的 起始 url 開始,請求這個網頁,返回網頁的body,這個body默認是直接請求返回的,也可以在 middleware.py 中,使用中間層軟件如 Chromedriver 獲得網頁內容,然後返回 body

數據流到 spider.py 中的 parse 函數,在parse函數中處理網頁的 body,解析出我們想要的數據,作爲各個成員封裝爲一個item,item 的格式聲明在 items.py

item yield 之後,流到了 pipelines.py,這個文件對來到的 item 進行篩選、丟棄或存入數據庫或寫入文件中,可以下載圖片等等。

項目的一些配置存放在 settings.py

各個文件各司其職,條理清晰,很友好

動手

在 project/spiders/ 目錄下創建一個文件 MySpider.py
文件包含一個MySpider類,它必須繼承scrapy.Spider類,然後實現 parse 成員方法。
要有以下成員:…

items.py 中創建一個類,繼承自 scrapy.Item,成員全部聲明爲
var1 = scrapy.Field() 這種形式,這個類的成員就是需要爬取的數據模型,比如文章標題、內容等。

pipelines.py 中是對數據的處理,
煩了,不想寫了,以後再改。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章