2021-12-21 16:29

12月21日,一年一度的冬至到来,很多南方市民在这一天会选择吃羊肉,纷纷表示“吃碗羊肉粉,整个冬天都不冷”,所以今天不管是羊肉馆,还是卖羊肉的生意肯定很火爆。我们都知道大家平时吃的都比较少,而且价格着实不便宜,之前都是六七十一斤,是很贵了,不知道今天的价格会不会因为节气上涨。

所以我们今天就利用python来研究下肉价的趋势,我们可以看下猪价网,爬取猪肉的价格信息,毕竟马上过年了。猪肉价格应该也有波动的。最近学习到可以把到网页中的很多信息都是存储在JSON文件中进行传输的,所以只要我们能够GET到所需的JSON,就能解析出相关数据。了解到这一点,要爬取猪肉的价格信息就小菜一碟了。具体的数据获取代码如下:

// 要访问的目标页面
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();
}

因为访问的网站对ip进行了限制,所以在访问过程中我加了代理,www.16yun.cn代理质量非常好的,关于爬取猪肉价就和大家分享到这里,希望能够帮助到有需要做这方面爬虫的人,同时也希望有大神能来给我指点指点迷津。


评论