
800819103
在線客服,實時響應
qq群
在線客服,實時響應
客服電話
13318873961
這里指的是網絡爬蟲、網絡蜘蛛,用于在茫?;ヂ摼W世界中抓取特定數據,常見的例子就是搜索引擎。
搜索引擎的爬蟲當然高端大氣上檔次,但這次只是需要定向的抓取一些數據,只需要一些簡單的操作便能夠實現,這次的目標是** 定向抓取天氣預報網站的數據,每隔五分鐘抓取一次 **
本次所用的是nodejs來編寫爬蟲程序,所以得先安裝node和npm工具,一切準備就緒還需安裝如下依賴包
//核心依賴"http": "latest","cheerio": "latest", //類jquery,用于解析網頁"request": "latest"
主要的工作其實很多前輩已經做過了,像http請求模擬,解析網頁等等,這里只需要對爬下來的網頁內容進行數據提取就OK了,代碼如下:
//抓取當前數據function fetchData(url) { http.get(url, function(res) { var html = ''; res.on('data', function(chunk) { html += chunk; }); res.on('end', function() { var $ = cheerio.load(html); try { //時間格式化 var DateTime = $('#air>i>div:last-child').text(); var date = DateTime.split(' '); var strDate = new Date().getFullYear() + '年' + date[0]; var fmDate = strDate.replace(/(\d{4}).(\d{1,2}).(\d{1,2}).+/mg, '$1-$2-$3'); var fetchTime = fmDate + ' ' + date[1]; //取得露點 var dewP = $('#day-part').children('p'); let dew = dewP[2].childNodes[1].data; //地區、溫度、濕度 let local = $('#current>h2>a').text(); let temp = $('#current>div:first-child>a>b').text(); let hum = $('.hum>p').text(); //風速,風向 let windP = $('.wind>p>span').children(); let wind = windP[1].prev.data.trim(); let windArr = wind.split(' '); let wind_speed = windArr[1] + windArr[2]; let wind_direc = windArr[0]; //體感溫度 let realFeel = $('.rfeel>b').text(); //保存為數組是因為對接下來存儲到數據庫方便 let meteoData = [fetchTime, local, temp, hum, dew, wind_speed, wind_direc, realFeel]; insertSql(meteoData); } catch (error) { console.error(error); } }) }) }
可以看到,爬數據并不難,上面的代碼已經把數據解析好了,接下來的工作主要是存儲到數據庫和添加定時任務:
1.存儲到數據庫
實時數據表
//這里需要引入mysql模塊npm install mysql --save//核心代碼如下function insertSql(data) { var insertStr = 'insert into real_meteorological(date_time,' + 'local,temp,hum,dew,wind_speed,wind_direction,real_feel)' + ' values(?,?,?,?,?,?,?,?)'; connection.query(insertStr, data, function(err, results) { if (err) { console.error(err); } else { console.info('success') } }); }
2.定時任務
定時任務采用setInterval()
,代碼如下
function loopCatch() { setInterval(function() { fetchData(url); }, 5 * 60 * 1000); }
想要做到數據抓取并不是很難,前人已經做了太多的工具可以用,我們需要的只不過是合理利用這些工具來組合成我們需要的工具。
順便說一句:這里測試用的url我并沒有給出來,但做法是差不多的
代理精靈IP平臺專業提供HTTP代理IP服務,其中的動態高質量代理重點推薦,多年來服務了很多顧客朋友,高效穩定的質量,受到了一致的好評。代理精靈IP將會繼續努力,為廣大顧客提供更優質的產品!咨詢QQ:800819360,網址:http://www.www.52chanpin.com/