Upgrade to Pro — share decks privately, control downloads, hide ads and more …

開源套件的經營指南 Facebook-Crawler 套件的理念、策略與收穫

tlyu0419
July 24, 2022

開源套件的經營指南 Facebook-Crawler 套件的理念、策略與收穫

- 經營開源專案往往會需要開發者投入相當多的時間與心力,而如何從經營的過程中持續性的獲得正向回饋即是決定開發者能否長期投入的關鍵因素。在這次的分享中我將以 facebook-crawler 為例,從專案管理的角度與大家分享 facebook-crawler 的理念、策略與收穫。不論你想要為開源專案貢獻一份心力,或者已經是開源專案的貢獻者,相信你/妳都能從這次的分享中更深入的了解經營開源專案會遇到大大小小的事情。並且希望透過這次的幫助大家設計與打造正向的回饋機制!
- facebook-crawler 是一項開源的 Python 套件,可以協助使用者用簡潔的語法快速收集 Facebook 上的公開粉絲專頁、社團的貼文資料,開源至今已經累積超過 2 萬次的下載量,在學術、商業、風險偵測、教育等等方面都有許多應用。
- Maintaining an open-source project requires developers to take a lot of time and care, and how to continuously obtain positive feedback from the management process is the crucial factor that determines whether developers can invest in the long term.
In this sharing, I will use Facebook-crawler as an example to share this open-source project's concept, strategy, and harvest. Whether you want to contribute to open-source projects or are already contributors to open-source projects, I believe you can take away something from this sharing. And hope that this will help you design and create a positive feedback process!
- Facebook-crawler is an open-source Python project that can effectively help users collect information on public Fanpages and Groups posts on Facebook. It has accumulated more than 20,000 downloads from open source. There are many applications in business, risk detection, education, politic, etc.
Here's the project link about this project:
- Github: https://github.com/TLYu0419/facebook_crawler
- PyPI: https://pypi.org/project/facebook-crawler/

tlyu0419

July 24, 2022
Tweet

More Decks by tlyu0419

Other Decks in Education

Transcript

  1. 開源套件的經營指南:
    Facebook-Crawler 套件的理念、策略與收穫
    游騰林(tlyu0419)
    2022-07-31

    View Slide

  2. TENG-LIN YU(tlyu0419) | Mail: [email protected]
    COSCUP 2022 | 開源套件的經營指南: Facebook-Crawler 套件的理念、策略與收穫
    Facebook-crawler 套件介紹
    2
    • Github: TLYu0419/facebook_crawler
    • Publish Date: 2021-06-14
    • Stars: 161 / Forks: 30
    簡單
    高效
    免登入

    View Slide

  3. TENG-LIN YU(tlyu0419) | Mail: [email protected]
    COSCUP 2022 | 開源套件的經營指南: Facebook-Crawler 套件的理念、策略與收穫
    其他 Facebook 的爬蟲專案
    設定滾動的次數,達成後結束任務
    特色1: 簡單
    3
    指定次數容易會抓不夠 / 抓超過
    而兩者都會浪費你的時間!
    Facebook-Crawler 的解方
    指定日期判斷是否跳脫迴圈或繼續爬蟲
    V.S.

    View Slide

  4. TENG-LIN YU(tlyu0419) | Mail: [email protected]
    COSCUP 2022 | 開源套件的經營指南: Facebook-Crawler 套件的理念、策略與收穫
    特色2: 高效
    4
    請求的 API 夾帶了極複雜的參數
    其他 Facebook 的爬蟲專案
    實際打開一個瀏覽器向伺服器請求資料
    在一個頁面中載入上萬則貼文
    伺服器 / 本機都會出現無回應
    Facebook-Crawler 的解方
    使用 Graphql API 直接 request 資料
    V.S.

    View Slide

  5. TENG-LIN YU(tlyu0419) | Mail: [email protected]
    COSCUP 2022 | 開源套件的經營指南: Facebook-Crawler 套件的理念、策略與收穫
    特色3: 免登入
    5
    有些貼文需要經過帳號認證,
    評估開發登入模組讓使用者選擇性使用
    其他 Facebook 的爬蟲專案
    (部分)要求使用者輸入帳號取得 token
    Facebook-Crawler 的解方
    通過無痕模式開發、和伺服器互動
    V.S.

    View Slide

  6. TENG-LIN YU(tlyu0419) | Mail: [email protected]
    COSCUP 2022 | 開源套件的經營指南: Facebook-Crawler 套件的理念、策略與收穫
    Facebook-crawler 使用方式
    6
    設定爬取粉絲專頁網址
    設定跳脫迴圈的日期

    View Slide

  7. TENG-LIN YU(tlyu0419) | Mail: [email protected]
    COSCUP 2022 | 開源套件的經營指南: Facebook-Crawler 套件的理念、策略與收穫
    Facebook-crawler 使用方式
    7

    View Slide

  8. TENG-LIN YU(tlyu0419) | Mail: [email protected]
    COSCUP 2022 | 開源套件的經營指南: Facebook-Crawler 套件的理念、策略與收穫
    0.0.29 會新增哪些功能?
    8

    View Slide

  9. TENG-LIN YU(tlyu0419) | Mail: [email protected]
    COSCUP 2022 | 開源套件的經營指南: Facebook-Crawler 套件的理念、策略與收穫
    自動收集更多粉絲頁
    9

    View Slide

  10. TENG-LIN YU(tlyu0419) | Mail: [email protected]
    COSCUP 2022 | 開源套件的經營指南: Facebook-Crawler 套件的理念、策略與收穫
    自動收集更多粉絲頁
    10

    View Slide

  11. TENG-LIN YU(tlyu0419) | Mail: [email protected]
    COSCUP 2022 | 開源套件的經營指南: Facebook-Crawler 套件的理念、策略與收穫
    自動收集更多粉絲頁
    11
    測試時以 30 個粉絲頁作為種子頁面,
    經過 10 輪擴展後最終收集到 13 萬筆推薦資料

    View Slide

  12. TENG-LIN YU(tlyu0419) | Mail: [email protected]
    COSCUP 2022 | 開源套件的經營指南: Facebook-Crawler 套件的理念、策略與收穫
    粉絲頁的基本資訊
    12

    View Slide

  13. TENG-LIN YU(tlyu0419) | Mail: [email protected]
    COSCUP 2022 | 開源套件的經營指南: Facebook-Crawler 套件的理念、策略與收穫
    粉絲頁的基本資訊
    13

    View Slide

  14. TENG-LIN YU(tlyu0419) | Mail: [email protected]
    COSCUP 2022 | 開源套件的經營指南: Facebook-Crawler 套件的理念、策略與收穫
    游騰林
    國泰世華銀行 | 數據部 | 資料科學家
    Email: [email protected]
    Facebook: https://www.facebook.com/tlyu0419
    SpeakerDeck: https://speakerdeck.com/tlyu0419
    Github: https://github.com/TLYu0419/facebook_crawler
    14

    View Slide

  15. TENG-LIN YU(tlyu0419) | Mail: [email protected]
    COSCUP 2022 | 開源套件的經營指南: Facebook-Crawler 套件的理念、策略與收穫
    回到正題
    為什麼需要分享怎麼經營開源套件?
    15

    View Slide

  16. TENG-LIN YU(tlyu0419) | Mail: [email protected]
    COSCUP 2022 | 開源套件的經營指南: Facebook-Crawler 套件的理念、策略與收穫
    「要求使用者付費!
    熱門函式庫作者搞破壞殃及數千專案」
    16
    原本以為是駭客攻擊事件,但追查發現兇手正是函式庫作者本人
    2022-01-11

    View Slide

  17. TENG-LIN YU(tlyu0419) | Mail: [email protected]
    COSCUP 2022 | 開源套件的經營指南: Facebook-Crawler 套件的理念、策略與收穫
    Marak 遇到的困境
    17
    Ref: marak.com/blog/2021-04-25-monetizing-open-source-is-problematic
    Marak
    faker
    fakercloud.com
    開發

    View Slide

  18. TENG-LIN YU(tlyu0419) | Mail: [email protected]
    COSCUP 2022 | 開源套件的經營指南: Facebook-Crawler 套件的理念、策略與收穫
    Marak 遇到的困境
    18
    Marak
    faker
    fakercloud.com
    Retool.com
    開發 Fork / 使用 販售
    Company B
    Company C
    Company A
    Note: 這是 Marak 的視角
    Ref: marak.com/blog/2021-04-25-monetizing-open-source-is-problematic

    View Slide

  19. TENG-LIN YU(tlyu0419) | Mail: [email protected]
    COSCUP 2022 | 開源套件的經營指南: Facebook-Crawler 套件的理念、策略與收穫
    開發者會從開源專案獲得報酬嗎?
    19
    調查結果:
    46%的人完全沒有報酬,59% 曾經 / 考慮放棄維護一個專案
    Ref: 調查:46% 的開源專案維護者根本沒有獲得報酬

    View Slide

  20. TENG-LIN YU(tlyu0419) | Mail: [email protected]
    COSCUP 2022 | 開源套件的經營指南: Facebook-Crawler 套件的理念、策略與收穫
    專案到底應該開源嗎?
    20
    Ref: 开源的恶果,程序员正在「自掘坟墓」
    開源是技術人的自媒體
    ✓ 開源幫產業創造了更大的蛋糕,
    但是開源者並沒有分到蛋糕
    ✓ 因為開源專案降低了行業門檻,
    反而會吸引更多人來瓜分蛋糕
    ✓ 因為人變多,最終還會導致自
    己被競爭下去了
    正方觀點 反方觀點
    ✓ 展現技術能力
    ✓ 打造了技術影響力(聲望)
    ✓ 聲望幫開發者找到更好的工作
    開源是在自掘墳墓

    View Slide

  21. TENG-LIN YU(tlyu0419) | Mail: [email protected]
    COSCUP 2022 | 開源套件的經營指南: Facebook-Crawler 套件的理念、策略與收穫
    只用熱情經營開源專案
    既不切實際也並不長遠
    21

    View Slide

  22. TENG-LIN YU(tlyu0419) | Mail: [email protected]
    COSCUP 2022 | 開源套件的經營指南: Facebook-Crawler 套件的理念、策略與收穫
    22








    程式開發
    問題拆解
    發表專案
    社會議題
    將程式依功能區分成不同模組,
    增加程式的可讀性與降低維護成本
    學會做各種假設和測試,
    拆解和排除請求失敗的原因
    將開源專案投稿至期刊 / 研討會,
    協助產、學界解決問題
    將專案用在社會公益組織,協助
    解決社會問題(e.g. D4SG)
    開 源 專 案 的
    經營理念

    View Slide

  23. TENG-LIN YU(tlyu0419) | Mail: [email protected]
    COSCUP 2022 | 開源套件的經營指南: Facebook-Crawler 套件的理念、策略與收穫
    23











    程式開發
    問題拆解
    發表專案
    社會議題
    商業思維
    獲利方式
    將程式依功能區分成不同模組,
    增加程式的可讀性與降低維護成本
    學會做各種假設和測試,
    拆解和排除請求失敗的原因
    將開源專案投稿至期刊 / 研討會,
    協助產、學界解決問題
    將專案用在社會公益組織,協助
    解決社會問題(e.g. D4SG)
    思考專案在市場的價值
    到底幫 誰 解決了 什麼 問題
    評估可行的獲利方式,
    讓市場幫助你維護這個專案
    開 源 專 案 的
    經營理念

    View Slide

  24. TENG-LIN YU(tlyu0419) | Mail: [email protected]
    COSCUP 2022 | 開源套件的經營指南: Facebook-Crawler 套件的理念、策略與收穫
    程式開發
    根據客戶需求
    開發和提供程式
    提供服務
    完成客戶指定的需求
    (本質上就是服務業)
    開源專案的商業化方式
    24
    開設課程
    於線上/下開設課程
    擔任講師收取講師費
    擔任顧問
    分享知識與技術
    提供專業的建議

    View Slide

  25. TENG-LIN YU(tlyu0419) | Mail: [email protected]
    COSCUP 2022 | 開源套件的經營指南: Facebook-Crawler 套件的理念、策略與收穫
    程式開發
    根據客戶需求
    開發和提供程式
    提供服務
    完成客戶指定的需求
    (本質上就是服務業)
    開源專案的商業化方式
    25
    Donate 的貢獻小到可以忽略不計
    開設課程
    於線上/下開設課程
    擔任講師收取講師費
    擔任顧問
    分享知識與技術
    提供專業的建議

    View Slide

  26. TENG-LIN YU(tlyu0419) | Mail: [email protected]
    COSCUP 2022 | 開源套件的經營指南: Facebook-Crawler 套件的理念、策略與收穫
    提供服務
    26
    •商機
    爬蟲程式需要花費人力開發 / 維護
    •獲利方式
    一次性服務 / 長期訂閱方案
    •注意事項
    • 初期要自己主動出擊才會有客戶
    • 需具備溝通能力跟客戶討論需求
    • 累積到一定客戶數量才會有效益
    範例: InfoMiner 即時輿情分析平台

    View Slide

  27. TENG-LIN YU(tlyu0419) | Mail: [email protected]
    COSCUP 2022 | 開源套件的經營指南: Facebook-Crawler 套件的理念、策略與收穫
    程式開發
    27
    範例: AnkiMobile Flashcards
    •商機
    開發客戶需要的程式供客戶使用
    •獲利方式
    下載 / 升級軟體 / 放置廣告
    •注意事項
    • 前期的開發成本較高,需有不同領
    域的專家協助(UI/UX, 前/後端…)
    • 需留意潛藏的後續維護成本

    View Slide

  28. TENG-LIN YU(tlyu0419) | Mail: [email protected]
    COSCUP 2022 | 開源套件的經營指南: Facebook-Crawler 套件的理念、策略與收穫
    開設課程
    28
    範例: Hahow 與老師的分潤機制
    •商機
    將專業領域的知識/經驗轉為課程
    •獲利方式
    於線上 / 線下渠道 或 企業販售課程
    •注意事項
    • 前期的企劃與製作成本非常高
    • 需累積一定粉絲規模才較容易銷售
    • 專業性 v.s. 需求性的取捨
    • 技術型產品迭代速度非常快(?

    View Slide

  29. TENG-LIN YU(tlyu0419) | Mail: [email protected]
    COSCUP 2022 | 開源套件的經營指南: Facebook-Crawler 套件的理念、策略與收穫
    擔任顧問
    29
    範例: 提供付費咨詢服務 – 知乎
    •商機
    提供專業經驗 / 知識幫客戶節省時間
    •獲利方式
    依時數 / 案件向客戶收費
    •注意事項
    • 除技術外還要有豐富的實務經驗
    • 需花心思培養和客戶間的信任感
    • 起步門檻非常高!

    View Slide

  30. TENG-LIN YU(tlyu0419) | Mail: [email protected]
    COSCUP 2022 | 開源套件的經營指南: Facebook-Crawler 套件的理念、策略與收穫
    總結
    30
    經營開源專案不是一次性的提交程式
    會需要長期性投入時間與心力的過程
    商業化可以幫助你持續投入專案
    而關鍵在於你幫助 誰 解決 什麼 問題
    既然都要做開源專案了,就投入在自己熱愛、有意義的事吧!

    View Slide

  31. TENG-LIN YU(tlyu0419) | Mail: [email protected]
    COSCUP 2022 | 開源套件的經營指南: Facebook-Crawler 套件的理念、策略與收穫
    人才招募中
    31
    資料科學分析師 (數數發中心,
    DDT)-104 人力銀行
    商業數據分析師 (數數發中心,
    DDT)-104 人力銀行

    View Slide

  32. TENG-LIN YU(tlyu0419) | Mail: [email protected]
    COSCUP 2022 | 開源套件的經營指南: Facebook-Crawler 套件的理念、策略與收穫
    QA?
    32

    View Slide

  33. TENG-LIN YU(tlyu0419) | Mail: [email protected]
    COSCUP 2022 | 開源套件的經營指南: Facebook-Crawler 套件的理念、策略與收穫
    游騰林
    國泰世華銀行 | 數據部 | 資料科學家
    Email: [email protected]
    Facebook: https://www.facebook.com/tlyu0419
    SpeakerDeck: https://speakerdeck.com/tlyu0419
    Github: https://github.com/TLYu0419/facebook_crawler
    33

    View Slide