以前短視頻還沒有這麼火的時候,我們看熱點新聞都是通過微博或今日頭條等獲取信息。如今短視頻已經成了大衆的基本娛樂項目,特別是抖音。很多人自從有了抖音,有問題是直接搜抖音獲取答案,而不是百度了。那今天給大家分享一篇簡單的安卓app數據分析及抓取方法。就以抖音爲例,我們想要抓取抖音的熱點榜數據。
要知道這個是沒有網頁版的,只有通過app獲取,app數據的獲取主要是通過以下過程,使用抓包工具、手機使用代理,app所有請求通過抓包工具、獲得接口,分析接口、突破反爬限制。整個過程比較復,這裏我們分享下部分代代碼的實現,主要是ip限制的部,可以通過使用爬蟲代理ip來解決,示例如下:
// 要訪問的目標頁面 string targetUrl = "http://httpbin.org/ip"; // 代理服務器(產品官網 www.16yun.cn) string proxyHost = "http://t.16yun.cn"; string proxyPort = "31111"; // 代理驗證信息 string proxyUser = "username"; string proxyPass = "password"; // 設置代理服務器 WebProxy proxy = new WebProxy(string.Format("{0}:{1}", proxyHost, proxyPort), true); ServicePointManager.Expect100Continue = false; var request = WebRequest.Create(targetUrl) as HttpWebRequest; request.AllowAutoRedirect = true; request.KeepAlive = true; request.Method = "GET"; request.Proxy = proxy; //request.Proxy.Credentials = CredentialCache.DefaultCredentials; request.Proxy.Credentials = new System.Net.NetworkCredential(proxyUser, proxyPass); // 設置Proxy Tunnel // Random ran=new Random(); // int tunnel =ran.Next(1,10000); // request.Headers.Add("Proxy-Tunnel", String.valueOf(tunnel)); //request.Timeout = 20000; //request.ServicePoint.ConnectionLimit = 512; //request.UserAgent = "Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.82 Safari/537.36"; //request.Headers.Add("Cache-Control", "max-age=0"); //request.Headers.Add("DNT", "1"); //String encoded = System.Convert.ToBase64String(System.Text.Encoding.GetEncoding("ISO-8859-1").GetBytes(proxyUser + ":" + proxyPass)); //request.Headers.Add("Proxy-Authorization", "Basic " + encoded); using (var response = request.GetResponse() as HttpWebResponse) using (var sr = new StreamReader(response.GetResponseStream(), Encoding.UTF8)) { string htmlStr = sr.ReadToEnd(); }
對獲取到的數據進行分析就可以得到需要的數據了。這裏着重分享下爬蟲代理的使用,這對很多新手小白來說是學習借鑑價值的,關於更多的代理使用可以去跟廠家詳細溝通www.16yun.cn。
若有收穫,就點個贊吧