C# NetCore使用AngleSharp爬取周公解夢數據 原由和頁面數據拆解

 

原由

  最近忽然心血來潮想作個小程序,學習一下小程序開發流程,而後新手就想作個查詢的就能夠了,少點交互能力,這種思來想去仍是周公解夢比較靠譜,mysql

網上一搜,還真有小程序源碼,可是這裏面彷佛數據都是取第三方api的或者固定死的演示數據,或者殘缺不全的數據,而後csdn上面竟然還有積分下載周公程序員

解夢數據的,評論都是說數據不全的,我這個腦子啊,這我就不肯意了,我要就要最全的,搞出來我也分享一下數據。。。。。。(實際上是不是仍是拖延症啊sql

不想學習小程序!!!)數據庫

  而後網上搜了一下週公解夢,目前有一家數據是比較全的,並且頁面結構是比較清晰的,多是有程序員在維護。。。鎖定數據源xzw。com 固然,若是小程序

這種行爲侵犯了xzw權益,請聯繫我刪除。api

言歸正傳

  下面開始訪問數據站,結構仍是挺清晰的,夢的類別 夢的名稱 裏面的子項 及簡介,咱們大體能夠設計一個表出來了nosql

  

  咱們再點擊進去看一會兒項的內容,原來子項的內容都是依賴於外層的「孕婦」,這裏我使用的是mysql數據庫存儲,學習

其實這種結構彷佛更適合存儲爲nosql數據庫,不糾結於這個,最多加個外鍵就OK。編碼

  

可能初步的表是這樣的url

Dream表

Id 自增列
Name 夢的名字 例如 「孕婦」
Summary 簡介  這是搜索列表最外層的那個簡介
CateName 分類名稱 總分類可能就那固定的幾個,咱們這裏只保存名稱就行了
CreateTime  附屬屬性
Url 詳細頁面地址(這個是在下面會作說明)

 

 

 

 

 

 

 DreamInfo表

Id  自增列
FkDreamId   Dream表主鍵
DreamName Dream表Name  例如 孕婦,爲了避免重複查詢直接id和name都保存
Name 夢的詳細名稱,例如 未婚女人夢見孕婦
Content 夢的詳細內容
CreateTime 附屬屬性,時間

 

 

 

 

 

 

 

分解頁面結構

而後開始咱們的頁面分解之路,這個頁面咱們能夠拿到  DreamName 還有Dream Summary 後面還要進入詳情頁綁定內容創建從屬關係,

那麼保存下這個詳細頁面的url,供咱們第二次爬詳細頁面的時候使用,因此纔會有上面dream表裏的url字段,邊發現邊修改。

  

具體思路就有了,先獲取分類下的名稱信息、簡介以及詳情頁url信息,下面有翻頁,仍是老規矩 遞歸翻頁直到結束。

再來看看翻頁,發現翻頁這個地方,這裏有個下一頁的按鈕,那麼這個是否是就能夠一直往下翻頁了呢,咱們就用它了。完美

 

 

總結

  感受本身腦殼亂糟糟的,沒有固定的想法,可能一個想法牽扯出來多個想法,忘記本身第一個想法是什麼了,感受這種思惟很可怕,鹹魚通常的感受。

下一章開始詳細編碼。。。

相關文章
相關標籤/搜索