python獲取全國地鐵資料

mmz_77發表於2021-11-11

如今地獄已經成了我們最基本的日常交通工具,大家覺得全國有多少個城市開通了地鐵?帶著這些疑問我們今天就介紹一種新的 獲取城市地鐵站點資料的方法 ,而且不再只是北上廣深四個城市,而是 全國開通地鐵的城市

今天要訪問的目標網站是:這個是高德地圖對於全國地鐵站點的一個視覺化介面,做的相當不錯,而且有介面更是方便我們直接獲取資料,我們通過遍歷城市集合,構造每一個城市的 url,然後訪問 url,爬取對應城市的地鐵站點資料,整個過程實現起來比較簡單,程式碼我們借用了億牛雲的爬蟲代理示例,主要是hi和大家分享下在爬蟲程式裡面如何使用代理,程式碼大致如下:

// 要訪問的目標頁面
string targetUrl = "";
// 代理伺服器(產品官網 )
string proxyHost = "
string proxyPort = "31111";
// 代理驗證資訊
string proxyUser = "16TVBQN";
string proxyPass = "813688";
// 設定代理伺服器
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();
}

資料已經有了,抽樣驗證了一下,發現只有少數站點的區域不對,手動處理一下就行。爬到的資料已經確認無誤,接下來就是如何分析的問題了。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31522063/viewspace-2841762/,如需轉載,請註明出處,否則將追究法律責任。

相關文章