網(wǎng)站的登錄是抓取某些網(wǎng)站的必須步驟,大多數(shù)情況我們都是使用一個真實的瀏覽器去提交我們的登錄信息,但是在代碼中嵌套瀏覽器不僅會帶來性能損耗,還會帶來崩潰的風(fēng)險。因此就有了這個使用httPRequest來模擬登錄的庫imitate-login,目前僅有微博網(wǎng)頁版和微博Wap版的實現(xiàn),其它計劃實現(xiàn)會根據(jù)項目關(guān)注度來決定(Star & fork)是否更新以及更新時間。
如果這個項目侵犯了您的權(quán)益,請及時與我聯(lián)系(可通過留言或郵件)!我會在收到的一周內(nèi)協(xié)商處理。
這個類庫僅對外提供一個方法:
LoginResult Login(1: string userName, 2: string passWord, 3: LoginSite loginSite);
這個方法位于ImitateLogin的LoginHelper類中,使用之前需要先對其進(jìn)行實例化。通過傳入 用戶名、密碼以及登錄的網(wǎng)站,返回一個包含登錄結(jié)果狀態(tài)、描述信息以及Cookies字典的類。
這個類庫并沒有提供對驗證碼的支持,微博可以通過設(shè)置登錄保護(hù)來避免驗證碼的出現(xiàn):
位于 設(shè)置->賬號安全->登錄保護(hù)
這個項目支持使用 Apache Thrift 來實現(xiàn)多語言環(huán)境下的RPC調(diào)用,首先安裝Thrift,然后使用以下命令創(chuàng)建目標(biāo)語言下的接口:
thrift --gen <language> ImitateLogin.thrift
將上面命令中的<language>
替換為你所使用的語言。然后在csharp端添加服務(wù)端得代碼:
public void Start() { TServerSocket serverTransport = new TServerSocket(7901, 0, false); Login.Processor processor = new Login.Processor(new LoginHelper()); TServer server = new TSimpleServer(processor, serverTransport); Console.WriteLine("Starting server on port 7901 ..."); server.Serve(); }
然后在其它語言(例如java)中實現(xiàn)客戶端的方法:
TTransport transport = new TSocket("localhost", 7901);transport.open();TProtocol protocol = new TBinaryProtocol(transport);Login.Client client = new Login.Client(protocol);client.Login("username", "password", LoginSite.Weibo);
將上述語句中的 username 和 password 替換為真實用于登錄的微博賬戶。
你可以在包含Mono或.Net Framework的環(huán)境下運行imitate-login類庫。該類庫里包含一個使用Gtk+創(chuàng)建的測試窗體程序,如果你希望使用它,需要額外安裝 Gtk+ for Mono.
該類庫已經(jīng)完成的社交網(wǎng)站支持:
計劃完成的支持:
計劃支持部分會根據(jù)項目關(guān)注度來決定(Star & fork)是否更新以及更新時間。
如果這個項目侵犯了您的權(quán)益,請及時與我聯(lián)系(可通過留言或郵件)!我會在收到的一周內(nèi)協(xié)商處理。
新聞熱點
疑難解答