Python教程

python获取全国地铁数据

本文主要是介绍python获取全国地铁数据,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

如今地狱已经成了我们最基本的日常交通工具,大家觉得全国有多少个城市开通了地铁?带着这些疑问我们今天就介绍一种新的 获取城市地铁站点数据的方法,而且不再只是北上广深四个城市,而是 全国开通地铁的城市。

今天要访问的目标网站是:http://map.amap.com/subway/index.html这个是高德地图对于全国地铁站点的一个可视化界面,做的相当不错,而且有接口更是方便我们直接获取数据,我们通过遍历城市集合,构造每一个城市的 url,然后访问 url,爬取对应城市的地铁站点数据,整个过程实现起来比较简单,代码我们借用了亿牛云的爬虫代理示例,主要是hi和大家分享下在爬虫程序里面如何使用代理,代码大致如下:

// 要访问的目标页面
string targetUrl = "http://map.amap.com/subway/index.html";


// 代理服务器(产品官网 www.16yun.cn)
string proxyHost = "http://t.16yun.cn";
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();
}

数据已经有了,抽样验证了一下,发现只有少数站点的区域不对,手动处理一下就行。爬到的数据已经确认无误,接下来就是如何分析的问题了。


这篇关于python获取全国地铁数据的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!