python爬蟲獲取天氣網實時資料

mmz_77發表於2022-11-29

關注天氣預報的小夥伴估計這兩天都在等著斷崖式降溫的到來,據天氣預報資料冷空氣即將到達很多地區的降溫會超過10度,有些地方的最低溫會達到0度左右,這時會有一夜入冬的感覺,人必須做好人體的防寒工作,不但要儘早新增衣物,還要準備好防寒的帽子手套和加絨的鞋子。在冷空氣到達的時候,一定要全副武裝,穿好這些保暖衣物,佩戴帽子和手套,不然在外出的時候容易受寒,會讓自己因冷空氣到達而出現感冒影響身體健康。
剛好最近學會了爬蟲,讓我們自制一個天氣預報的爬蟲吧。簡單的需求分析如下:
1、用 requests爬取 全國天氣網的網頁原始碼,2、解析網頁原始碼,取得天氣情況資訊的節點。3、將獲取的資料將資訊儲存到本地 Excel 檔案。
實現過程透過爬蟲程式+爬蟲代理進行大資料採集,其中爬蟲指令碼使用Python常用的requests+BeautifulSoup+selenium完成  ,代理選擇的是億牛雲代理提供的隧道代理。在爬蟲程式裡面新增代理IP實現資料獲取的過程如下:

Plain Text
複製程式碼
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33

// 要訪問的目標頁面
string targetUrl = "
// 代理伺服器(產品官網 )
string proxyHost = "
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();


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

相關文章