網站的登錄是抓取某些網站的必須步驟,大多數情況我們都是使用一個真實的浏覽器去提交我們的登錄信息,但是在代碼中嵌套浏覽器不僅會帶來性能損耗,還會帶來崩潰的風險。因此就有了這個使用httpRequest來模擬登錄的庫 imitate-login ,目前僅有微博網頁版和微博Wap版的實現,其它計劃實現會根據項目關注度來決定(Star & fork)是否更新以及更新時間。
如果這個項目侵犯了您的權益,請及時與我聯系(可通過留言或郵件)!我會在收到的一周內協商處理。
這個類庫僅對外提供一個方法:
LoginResult Login(1: string userName, 2: string password, 3: LoginSite loginSite);
這個方法位於ImitateLogin的LoginHelper類中,使用之前需要先對其進行實例化。通過傳入 用戶名、密碼以及登錄的網站,返回一個包含登錄結果狀態、描述信息以及Cookies字典的類。
這個類庫並沒有提供對驗證碼的支持,微博可以通過設置登錄保護來避免驗證碼的出現:
位於 設置->賬號安全->登錄保護
這個項目支持使用 Apache Thrift 來實現多語言環境下的RPC調用,首先安裝Thrift,然後使用以下命令創建目標語言下的接口:
thrift --gen <language> ImitateLogin.thrift
將上面命令中的<language>
替換為你所使用的語言。然後在csharp端添加服務端得代碼:
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)中實現客戶端的方法:
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的環境下運行 imitate-login 類庫。該類庫裡包含一個使用Gtk+創建的測試窗體程序,如果你希望使用它,需要額外安裝 Gtk+ for Mono.
該類庫已經完成的社交網站支持:
計劃完成的支持:
計劃支持部分會根據項目關注度來決定(Star & fork)是否更新以及更新時間。
如果這個項目侵犯了您的權益,請及時與我聯系(可通過留言或郵件)!我會在收到的一周內協商處理。