<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          用 Python 自動定時發(fā)微博

          共 1521字,需瀏覽 4分鐘

           ·

          2020-01-17 23:26


          其實小帥b已經(jīng)挺久沒有玩微博了,記得上次玩微博還是為了給周杰倫打榜,不過最近心血來潮,覺得俺的微博賬號躺著也是躺著,要不就用 Python 做一個自動定時發(fā)微博的機(jī)器人,讓它在上面飄一會。
          怎么個飄法呢?

          504f5429012dfe34d968f094e9a60136.webp


          這不禁讓我想到了一個叫做 “古城鐘樓”?的微博賬號,每天都定時定點的在上面 “鐺鐺檔”,其它的啥也不干,但牛逼的是,人家就憑 “鐺鐺檔” 就有了 100 多萬粉絲,我特么都快給跪下了。


          3e020181e356f415cbf4f644caa6a459.webp

          所以我也打算弄一個類似這樣的微博機(jī)器人,我要做的是,每隔一段時間就發(fā)布一條關(guān)于?“年度進(jìn)度” 的微博,告訴你一年過去百分之多少了。比如:?
          2020?年進(jìn)度:
          [#-------------------]4%



          4a02b5b931253bd296db3ce7b1ef4b7e.webp

          事不宜遲,先把我的微博名稱給改了,就叫做 “我的年度進(jìn)度條” 吧,再把簽名改成 “給時間打上 tag” 。


          2831b4fde3cfdcc53744ce3d5e92e8cc.webp

          瞬間有點逼格了,帥b微博百萬粉指日可待!!


          d933d15f3d10c1f97ffa7d010f1257b8.webp



          那么如何實現(xiàn)定時發(fā)微博呢?接下來就是:

          學(xué)習(xí) Python 的正確姿勢

          1e9ae0556b220f1f1ae03eed3fa689e9.webp

          遇事不決,量子力學(xué),去微博的開放平臺逛一波,果然發(fā)現(xiàn)了一個寫入微博的 API:



          731c71c40b3a3eb0c658499120db6ad4.webp



          進(jìn)去看了下,是一個 POST 請求,需要攜帶兩參數(shù),一個 token, 一個要發(fā)微博的內(nèi)容:



          832807d49a369c2d1b56369d43778726.webp

          ?


          上面說了,token 參數(shù)需要采用 OAuth 授權(quán)后才能獲得。


          所以得先登錄上去注冊一個應(yīng)用:



          b39cdfc6a8a40fd2fec35c7cde8680fc.webp



          反正就是一頓創(chuàng)建之后拿到應(yīng)用相關(guān)的 App Key, App Secret 等參數(shù),有了它們才可以去獲取 token 從而使用發(fā)微博的 API。

          6a70eed4bd2f36377e807c5533e59d80.webp

          ?


          遇事不決,量子力學(xué),在 PyPI 上面搜下 weibo ,果然有人用 Python 封裝好了微博接口請求的 API :



          74c5923a49bde0e9bfd7d428094e1972.webp



          第一個點進(jìn)去看看介紹:


          c7095530a9d93671c6c56d29521eae56.webp


          056c2694dcc92027c35bc707fa9aa57a.webp



          唉呀媽呀,這正是我想要的哇,Python 又幫我省下了不少時間,哎,人生苦短呀。




          879de5c89095873cacea7f85af30e258.webp



          那就 install 一波唄:



          2ed40983dfd25b68ccd9b51833881f30.webp

          ?


          開始擼下代碼,創(chuàng)建一個 weibo_robot.py ,然后把需要的庫導(dǎo)進(jìn)來:



          6b5c776fd556fa30d924cd26800c5f62.webp



          這個 weibo 庫的獲取 token 是這樣的:



          5267a5ff882780d88fcd5c5f0a939e3f.webp




          那就把它寫成一個方法,然后等下把參數(shù)塞進(jìn)去就可以了:




          e8a99fef6f7abd9f1db95f74b688c94e.webp



          把剛剛在微博開放平臺獲到的參數(shù),和自己微博賬號密碼給定義好:


          786d93dc9d7cbb5bceb458deea5ed1bc.webp



          有了參數(shù)就可以獲取 weibo 的 client 了:


          15041d2224e5219ddb88c063bfef8064.webp



          有了 client 就可以調(diào)用 share 接口來發(fā)微博了,來測試一下:



          c83eceeae4f776be4ed9aef6244766b0.webp



          運(yùn)行一波:



          47b35f6cc016080d81ee49a95b127cff.webp



          報錯了,文本找不到域名?我就納悶了呀,為啥要 domain?


          再仔細(xì)看下文檔才發(fā)現(xiàn)還要帶上域名的:



          491abbf124426d36b447d438f2bec178.webp



          好吧,帶上俺綁定的域名試試看:



          e9e8fb659ff34bec34a0100fb7d333bd.webp



          再運(yùn)行一波,沒報錯了,打開俺的微博看看:



          8f4a04395ab812d416a77e4332c9ed2c.webp



          可以可以,發(fā)布成功,不過來自?“未通過審核應(yīng)用” 是什么鬼?


          看下開放平臺的應(yīng)用發(fā)現(xiàn):



          791d8f3e9e2175103b7239a7abe24834.webp



          好吧,不管了,先這樣,接下來就可以來寫一個獲取年度進(jìn)度的方法了。


          希望發(fā)布的微博格式是這樣的:


          xxxx 年進(jìn)度:
          [#-------------------]xx%


          所以定義一下特定的輸出格式:



          8151e11d82ff72ccdd0b2446b00f28da.webp



          其中的 years 可以通過 datetime 獲取:


          2694644ff765cf3cec4f6e95d25cb98d.webp



          百分比就是獲取當(dāng)天是新的一年的第幾天,然后除以 365 ,而主要的進(jìn)度條在這里就定義一個這樣的字符串:



          4398cc6c286f8601205e0d8e479af547.webp



          每一小格代表 5% ,然后每次計算百分比,比如現(xiàn)在就是這樣:



          6b1306841d6dbccb1b8cba66db4d8a0c.webp



          而 14% 就是這樣:



          089d0830575f349c9dce08c6f471dc18.webp



          可以,那就四舍五入下,然后整下字符串替換得了:



          c054885e2ebc29074c7e3943d8564847.webp



          再運(yùn)行一波:




          5974be7de6f9f883bf8354f36382ec76.webp




          沒毛病,那最后就扔到服務(wù)器上定時運(yùn)行腳本了。


          可以使用 Linux 的?crontab?定時任務(wù),執(zhí)行 crontab -e,編輯定時運(yùn)行腳本,比如定時每天 17 :20 發(fā)布微博:



          b6b5a63fcfe6a8740b19ecc5bb24b019.webp



          保存退出即可,這樣每到了特定的時間,它就會屁顛屁顛的運(yùn)行了。




          45e29ca5ea56882ce2e62f996f755f46.webp




          ok,就先這樣讓它在上面飄著吧,之后有時間小帥b再優(yōu)化優(yōu)化,畢代碼寫的有點倉促,?API 也可能會變,服務(wù)器偶爾會傻逼...,那么我們下回見咯,peace




          你點在看的樣子

          真特么帥氣!

          瀏覽 109
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  www.国产视频在线观看 | 九九手机看片 | 久久久久久久久久久网站 | 亚洲日本Ⅴa中文字幕无码 | 青春草原现在免费观看 |