摘要:本以為花一兩個小時就能搞定這個微博自動轉(zhuǎn)發(fā)的腳本,結(jié)果中途不停的踩坑折騰了大半天。還好早早的被李笑來老師拉黑。填坑過程打開瀏覽器中,先登錄自己的微博,再進入李笑來老師的微博首頁。然后手動轉(zhuǎn)發(fā)一次微博,獲取到轉(zhuǎn)發(fā)時所產(chǎn)生的請求。
故事的背景如下圖,李笑來 老師于10月19日在 知乎Live 開設(shè) 一小時建立終生受用的閱讀操作系統(tǒng) 的講座,他老人家看到大家伙報名踴躍,便在微博上發(fā)起了一個 猜數(shù)量贏取iPhone7 的活動。
因為該活動注明了「不限猜的次數(shù)」,我便用 JavaScript 寫一個自動轉(zhuǎn)發(fā)的腳本,用機器代替手工轉(zhuǎn)發(fā),結(jié)果轉(zhuǎn)發(fā)不到200次就被 李笑來 老師拉黑了,實在掃興。與其獨自郁悶,不如把技術(shù)細節(jié)分享給大家,祝大家能早日贏得 iPhone7。我的微博地址是:http://weibo.com/stone0090,歡迎大家來圍觀。
本以為花一兩個小時就能搞定這個微博自動轉(zhuǎn)發(fā)的腳本,結(jié)果中途不停的踩坑折騰了大半天。還好早早的被 李笑來 老師拉黑。不然用 .NET 重寫工具,再接入 打碼兔,還得再花我好幾個小時。好不容易國慶長假休息一下,還不是想給媳婦換個 iPhone7,我就能用她的 iPhone6s,要不然真心不想花太多時間搗鼓這個。廢話不多說了,進入正題:
前期準備JavaScript:如果不會 JavaScript,建議先學(xué)完 JavaScript 闖關(guān)記,再繼續(xù)看本文。
Chrome:開發(fā)調(diào)試 JavaScript 必備神器。
微博會員:據(jù)網(wǎng)上流言,普通用戶如果轉(zhuǎn)發(fā)過多會被封號,而會員則不會。
填坑過程打開 Chrome 瀏覽器中,先登錄自己的微博,再進入李笑來老師的微博首頁 http://weibo.com/bylixiaolai 。
打開 Chrome 開發(fā)者工具(Mac 快捷鍵 option + comand + j,Window 快捷鍵 ctrl + shift + i),切換 tab 到 NetWork,并點擊 clear,清除初始化時所加載的數(shù)據(jù)。
然后手動轉(zhuǎn)發(fā)一次微博,獲取到轉(zhuǎn)發(fā)時所產(chǎn)生的請求。
利用上圖紅框中的關(guān)鍵數(shù)據(jù),使用 JavaScript 模擬發(fā)送轉(zhuǎn)發(fā)請求,具體代碼如下。
// 轉(zhuǎn)發(fā)微博,并評論 function forwardWeibo(content, retcode) { var formData = new FormData(); formData.append("pic_src", ""); formData.append("pic_id", ""); formData.append("appkey", ""); formData.append("mid", "4024988475919525"); formData.append("style_type", "1"); formData.append("mark", ""); formData.append("reason", content); formData.append("location", "page_100505_home"); formData.append("pdetail", "1005051576218000"); formData.append("module", ""); formData.append("page_module_id", ""); formData.append("refer_sort", ""); formData.append("is_comment_base", "1"); formData.append("rank", "0"); formData.append("rankid", ""); formData.append("_t", "0"); formData.append("retcode", retcode || ""); var xhr = new XMLHttpRequest(); xhr.timeout = 3000; xhr.responseType = "text"; xhr.open("POST", "http://weibo.com/aj/v6/mblog/forward?ajwvr=6&domain=100505&__rnd=" + new Date().getTime(), true); xhr.onload = function(e) { if (this.status == 200 || this.status == 304) { var data = JSON.parse(this.responseText); if (data.code == "100000") { // 轉(zhuǎn)發(fā)微博成功 console.log(content); } else if (data.code == "100027") { // 轉(zhuǎn)發(fā)微博失敗,需要回答圖片驗證碼的問題 console.log(data); } else { // 轉(zhuǎn)發(fā)微博失敗,其他原因 console.log(data); } } }; xhr.send(formData); } //forwardWeibo("轉(zhuǎn)發(fā)內(nèi)容"); //forwardWeibo("轉(zhuǎn)發(fā)內(nèi)容",verified("答案")); // 每5秒轉(zhuǎn)發(fā)一次 var count = 35000; setInterval(function(){ forwardWeibo(count++); }, 5000);
打開 Chrome 開發(fā)者工具,切換 tab 到 Console,拷貝上面代碼到 Console 中,按回車鍵即可以「5秒1次」的頻率對李笑來老師的這條微博進行轉(zhuǎn)發(fā)評論,如需停止請關(guān)閉該頁面再重新打開。
然而僅過了2分鐘,成功轉(zhuǎn)發(fā)50多次之后,后面的轉(zhuǎn)發(fā)全部失敗。經(jīng)檢查發(fā)現(xiàn),由于我轉(zhuǎn)發(fā)頻率過快,被微博官方暫時封號。回答一些簡單的問題把賬號解封,我把轉(zhuǎn)發(fā)頻率由「5秒1次」改為「10秒1次」,因為除我之外還有其他幾個號也在用腳本刷,他們大概用「10秒1次」的頻率,穩(wěn)定的轉(zhuǎn)發(fā)沒有間斷過,所以「10秒1次」應(yīng)該是相對安全的。
我調(diào)整頻率之后重新開始轉(zhuǎn)發(fā),但還是轉(zhuǎn)發(fā)失敗,手動操作后發(fā)現(xiàn)轉(zhuǎn)發(fā)需要輸入驗證碼,以前并沒有這個環(huán)節(jié),看來剛才的封號是有一些后遺癥的。驗證碼我才不怕,專業(yè)的打碼服務(wù) 打碼兔 連12306的驗證碼都能輕松應(yīng)付,識別這里的驗證碼就是小兒科。但接入 打碼兔 的工作量有點大,我還是先找找看,有沒有更簡單的方法。
果然還真被我找到了,雖然轉(zhuǎn)發(fā)的時候需要輸入驗證碼,但評論的時候并不用,手動操作一把,評論并轉(zhuǎn)發(fā)也能成功,便馬上新增了一個評論的方法,具體代碼如下。
// 評論微博,并轉(zhuǎn)發(fā) function commentWeibo(content) { var formData = new FormData(); formData.append("act", "post"); formData.append("mid", "4024988475919525"); formData.append("uid", "1760390531"); formData.append("forward", "1"); formData.append("isroot", "0"); formData.append("content", content); formData.append("location", "page_100505_home"); formData.append("module", "scommlist"); formData.append("group_source", ""); formData.append("tranandcomm", "1"); formData.append("pdetail", "1005051576218000"); formData.append("_t", "0"); var xhr = new XMLHttpRequest(); xhr.timeout = 3000; xhr.responseType = "text"; xhr.open("POST", "http://weibo.com/aj/v6/comment/add?ajwvr=6&__rnd=" + new Date().getTime(), true); xhr.onload = function(e) { if (this.status == 200 || this.status == 304) { if (this.responseText.code == "100000") { console.log(content); } else { console.log(this.responseText) } } }; xhr.send(formData); } //commentWeibo("評論內(nèi)容"); // 每10秒評論一次 var count = 35000; setInterval(function(){ forwardWeibo(count++); }, 10000);
沒高興幾分鐘,又發(fā)現(xiàn)新的問題,評論成功10條,只有1條轉(zhuǎn)發(fā)成功了,這完全是坑爹啊。看來只有接入 打碼兔 才能徹底解決問題了,估計要花2、3個小時才能搞定,算了,先吃飯、洗澡再弄。
磨蹭了1、2個小時之后回來,發(fā)現(xiàn)微博轉(zhuǎn)發(fā)輸入驗證碼的限制已經(jīng)被取消,但我仍心有余悸,把腳本的頻率改為「30秒1次」讓它慢慢的跑。然后,埋頭研究 打碼兔 的 API,注冊相關(guān)開發(fā)者賬號,充值測試費用。就在我剛準備寫代碼之際,腳本又失敗了,而且,這次的報錯跟以前都不一樣,原來是我已經(jīng)被 李笑來老師拉黑了,再也不能轉(zhuǎn)發(fā)評論他老人家任何微博了。
本以為會刷幾萬條微博出來,沒想到只刷了200條不到,這些微博就留作紀念不刪了。下面是提前準備好的批量刪微博的腳本。
//刪除微博 function deleteWeibo() { var items = document.querySelectorAll(".WB_feed_type"); for(var i in items){ if(items[i].getAttribute){ var formData = new FormData(); formData.append("mid", items[i].getAttribute("mid")); var xhr = new XMLHttpRequest(); xhr.open("POST", "http://weibo.com/aj/mblog/del?ajwvr=6", false); xhr.send(formData); console.log(xhr.responseText); } } } deleteWeibo();
信念瞬間崩塌,思想得到解放,果斷去抱著媳婦追 權(quán)利的游戲,啪啪啪,真是一個美好夜晚。
最后,祝大家國慶節(jié)快樂。如果還想聽我聊技術(shù)(che dan),請關(guān)注微信公眾號「劼哥舍」,老斯基帶你飆車。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/80589.html
摘要:在這段長達多分鐘的談話中,李笑來帶著粗鄙的口吻依次數(shù)落幣圈中的知名人物和區(qū)塊鏈項目,使很多人開始質(zhì)疑李笑來割韭菜。隨后,楊寧向外界確認團隊解散,并高調(diào)宣布推出幣圈。楊寧這個名字,在區(qū)塊鏈行業(yè),本應(yīng)比李笑來薛蠻子更有說服力。 2018是區(qū)塊鏈誕生的第十個年頭,這一年的區(qū)塊鏈世界,一面是熱火朝天,大量的區(qū)塊鏈項目投入市場,另一方面,卻是寒風(fēng)瑟瑟,以比特幣為首的虛擬貨幣價格一跌再跌。 而大佬...
摘要:加密數(shù)字貨幣價格巔峰,區(qū)塊鏈成二線企業(yè)股價春藥年月日,是區(qū)塊鏈行業(yè)的高光時刻,整個加密數(shù)字貨幣市值億美元,人民幣近萬億元。直接原因是,當(dāng)日,中網(wǎng)載線剛剛宣布與井通網(wǎng)絡(luò)科技有限公司合作開展區(qū)塊鏈產(chǎn)業(yè)。 加密數(shù)字貨幣價格巔峰,區(qū)塊鏈成二線企業(yè)股價春藥 2018 年 1 月 8 日,是區(qū)塊鏈行業(yè)的高光時刻,整個加密數(shù)字貨幣市值 8139 億美元,人民幣近 6 萬億元。在 10 天之前,12 ...
摘要:記筆記很有必要相信我,大多數(shù)人的記憶力是不可靠的。解決方式遍歷的順序不確定因為對象不是有序的。出租過程中趕走了某些房客。具體來說就是說存在某個空間沒有元素的數(shù)組便是稀疏數(shù)組怎么處理將會確認這個位置有沒有元素存在。同檢查元素是否存在 記筆記很有必要——相信我,大多數(shù)人的記憶力是不可靠的。 ——《與時間做朋友》李笑來 數(shù)組 值的有序集合 弱類型 數(shù)組中的元素可以是各種類型的 ...
閱讀 3273·2021-10-11 10:59
閱讀 2840·2021-10-11 10:58
閱讀 2249·2021-09-04 16:45
閱讀 2726·2019-08-30 15:44
閱讀 680·2019-08-30 15:44
閱讀 3207·2019-08-30 10:51
閱讀 1602·2019-08-29 18:46
閱讀 2760·2019-08-29 13:57