簡書爬蟲API實現 (python代碼)

特別喜歡簡書這個網站,上面有很多優秀的作者,很多文章也寫的非常好。最近想來有空的時候就寫了 個簡書爬蟲,抓取某個專題下的所有文章,為了完整性就完成以下一些功能。

直接貼代碼鏈接: wenjunoy/jianshu-spider-python ,相關的使用介紹在代碼readme 也能看到。

簡要介紹

本代碼主要是提供一系列的API,用于爬取簡書上的內容。可以抓取簡書上用戶相關信息,寫的文章。還有抓取簡書上所有的專題和文集,獲取專題和文集的相關信息和所有文章。

不保證代碼一直有效(如果簡書網站結構和API發生變化)

依賴

BeautifulSoup
urllib2
requests

如何使用

獲取代碼:

git clone git@github.com:wenjunoy/jianshu-spider-python.git

獲取用戶個人信息

url形式: http://www.lxweimin.com/users/< ID >/latest_articles
獲取user的相關內容,包括基本信息(關注數,粉絲,文章數,字數,獲得的喜歡),所有的文章,關注的人,和被關注的人。

from jianshu.jianshu import User
user = User(user_id='81840abcd13b')
user.get_user_info() # 獲取基本信息
user.get_article_list() # 獲取文章列表
user.get_following() # 獲取關注的用戶
user.get_followers() # 獲取被關注的用戶

通過登入自己的賬戶還可以獲取喜歡的文章id(文章的url是 http://www.lxweimin.com/p/< id >),收藏的文章和關注的專題最新的文章。必需在jianshu/config.py 設置COOKIE。

user.get_favourites_articles()
user.get_bookmarks_articles()
user.get_subscription_notes()

通過通知頁面可以繪制你的 簡書文章-關注曲線

from jianshu.plot import draw_niti
draw_niti(user_id='81840abcd13b')
關注曲線

參考簡書作者-treelake的文章繪制你的簡書曲線

獲取所有的專題

根據主頁的主題廣場可以獲取所有的專題ID

專題廣場
from jianshu.jianshu import HomePage
home = HomePage()
home.get_collections_hot()  # 獲取熱門專題
home.get_collections_recommend() #獲取推薦專題
home.get_collections_city() # 獲取城市專題

通過參數order_by* 和max_get的設置獲取你想要的專題順序和數目。

獲取專題內容

url形式: http://www.lxweimin.com/collection/< ID >
通過專題的ID可以獲取該專題的相關內容,包括專題的管理員,關注此專題的用戶以及文章列表。

from jianshu.jianshu import Collection
collection = Collection('40d81e34a7fb')
collection.get_authors()
collection.get_subscribers()
collection.get_article_list()

獲取文集內容

url 形式: http://www.lxweimin.com/notebooks/< ID >/latest
通過文集的ID可以獲取該文集的相關內容,包括基本信息,文集的作者,關注的人和文章列表。

from jianshu.jianshu import Notebooks
note = Notebooks('3864458')
note.get_author_id()
note.get_subscribers()
note.get_article_list()

獲取文章內容

url形式: http://www.lxweimin.com/p/< ID >
通過文章的ID和獲取文章的相關內容,基本信息(字數,閱讀量,評論數和打賞數),文章的內容(可以選擇刪除網頁標簽和換行符),還可以下載文章內的所有圖片。

from jianshu.jianshu import Article
art = Article('af14524650e2')
art.get_base_info() # 基本信息
art.get_article_text() # 文章的內容
art.get_all_imageUrl() # 獲取文章的圖片并保存

獲取2015年精選文章

url: http://www.lxweimin.com/zodiac/2015

zo = Zodiac()
zo.get_articles()

該代碼只是簡書爬蟲的一系列的API,爬蟲機制還需要自己去完成。目前只支持單線程。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容