亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

點滴積累【C#】---抓取頁面中想要的數據

2019-11-14 13:37:49
字體:
來源:轉載
供稿:網友

效果

描述:此功能是抓取外國的一個檢測PM2.5的網站。實時讀取網站的數據,然后保存到數據庫里面。每隔一小時刷新一次。

地址為:http://beijing.usembassy-china.org.cn/070109air.html

篩選后的地址為:http://utils.usembassy.gov/feed2js/feed2js.php?src=http%3A%2F%2Fwww.stateair.net%2Fweb%2Frss%2F1%2F1.xml&desc=1&num=7&targ=y&utf=y&pc=y&Words=40&

思路:先抓取到頁面的所有數據,保存到txt里面,再一行一行的讀取txt,然后用split,substring截取到自己想要的數據,最后保存到數據庫,在進行插入數據庫的時候查看一下是否已經存在,如果不存在則插入。

代碼

using System;using System.Collections.Generic;using System.Configuration;using System.Data;using System.Data.SqlClient;using System.IO;//using System.Linq;using System.Net;using System.Text;using System.Text.RegularExPRessions;//using System.Threading.Tasks;/******************************** * 創建人:青蘋果 * 創建時間:2015-12-28 * 描述:獲取美利堅合眾國的 PM2.5 * ******************************/namespace GetUSAData{    class Program    {        //public static string GetURL = System.Configuration.ConfigurationSettings.AppSettings["GetURL"];//獲取數據的地址        public static string GetURL = "http://utils.usembassy.gov/feed2js/feed2js.php?src=http%3A%2F%2Fwww.stateair.net%2Fweb%2Frss%2F1%2F1.xml&amp;desc=1&amp;num=7&amp;targ=y&amp;utf=y&amp;pc=y&amp;words=40&amp;";        public static string txtURL = System.Configuration.ConfigurationSettings.AppSettings["txtURL"];//保存為txt文件的路徑        public static string conn = ConfigurationManager.ConnectionStrings["ConnectionString"].ToString();        static void Main(string[] args)        {            LoadGO();        }        public static void LoadGO()        {            GetUSA();            List<string[]> getlist = Read(txtURL);            //刪除txt            if (File.Exists(txtURL))            {                //如果存在則刪除                File.Delete(txtURL);            }            if (getlist.Count > 0)            {                for (int i = getlist.Count-1; i >-1; i--)                {                    DateTime dtime = DateTime.Parse(getlist[i][0].ToString());                    string getTime = dtime.ToString("yyyy-MM-dd HH:mm");                    string controlTime = dtime.ToString("yyyy-MM-dd");                    float LatestHourdata1 = float.Parse(getlist[i][2]);                    int LatestHourdata2 = Convert.ToInt32(getlist[i][3]);                    float Avgdata1 = 0;                    int Avgdata2 = 0;                    string Avgdata3 = getlist[i][4].ToString();                    List<SqlParameter> listWhere = new List<SqlParameter>();                    listWhere.Add(new SqlParameter("@strDatetime", controlTime));                    string sqlSelect = @"SELECT count(*) as allcount,sum(LatestHourdata1) as LatestHourdata1_avg, sum(LatestHourdata2) as LatestHourdata2_avg FROM T_twitter  where ([LatestHourdata1] is not null or [LatestHourdata2] is not null or [Avgdata1] is not null  or [AvgData2] is not null) and   CONVERT(varchar(100), [datetime], 23)=@strDatetime";                    DataTable sumDT = ControlDB(sqlSelect, listWhere, "select");    //查詢總和用于計算日均值                    if (sumDT.Rows.Count > 0)                    {                        foreach (DataRow itemDR in sumDT.Rows)                        {                            int allcount = Convert.ToInt32(itemDR["allcount"].ToString());    //數據庫中當前日期數量總和                            if (allcount > 0)                            {                                if (itemDR["LatestHourdata1_avg"] != null)                                {                                    Avgdata1 = float.Parse(itemDR["LatestHourdata1_avg"].ToString());   //數據庫中LatestHourdata1_avg總和                                    Avgdata1 = (Avgdata1 + LatestHourdata1) / (allcount + 1);//(數據庫的總和+最新的一條)/(數據庫的總和數量+1)=日平均值                                }                                if (itemDR["LatestHourdata2_avg"] != null)                                {                                    Avgdata2 = Convert.ToInt32(itemDR["LatestHourdata2_avg"].ToString());   //數據庫中LatestHourdata2_avg總和                                    Avgdata2 = (Avgdata2 + LatestHourdata2) / (allcount + 1);//(數據庫的總和+最新的一條)/(數據庫的總和數量+1)=日平均值                                }                                //根據網站規則判斷PM2.5的平均嚴重性                                if (Avgdata2 >= 0 && Avgdata2 <= 50)                                {                                    Avgdata3 = " Good (at 24-hour exposure at this level)";                                }                                else if (Avgdata2 >= 51 && Avgdata2 <= 100)                                {                                    Avgdata3 = " Moderate (at 24-hour exposure at this level)";                                }                                else if (Avgdata2 >= 101 && Avgdata2 <= 150)                                {                                    Avgdata3 = " Unhealthy for Sensitive Groups (at 24-hour exposure at this level)";                                }                                else if (Avgdata2 >= 151 && Avgdata2 <= 200)                                {                                    Avgdata3 = " Unhealthy (at 24-hour exposure at this level)";                                }                                else if (Avgdata2 >= 201 && Avgdata2 <= 300)                                {                                    Avgdata3 = " Very Unhealthy (at 24-hour exposure at this level)";                                }                                else                                {                                    Avgdata3 = " Hazardous (at 24-hour exposure at this level)";                                }                            }                            else                            {                                Avgdata1 = LatestHourdata1;                                Avgdata2 = LatestHourdata2;                            }                        }                    }                    List<SqlParameter> pars = new List<SqlParameter>();                    pars.Add(new SqlParameter("@whereDatetime", getTime));                    pars.Add(new SqlParameter("@datetime", getTime));                    pars.Add(new SqlParameter("@LatestHourdata1", LatestHourdata1));                    pars.Add(new SqlParameter("@LatestHourdata2", LatestHourdata2));                    pars.Add(new SqlParameter("@LatestHourdata3", getlist[i][4].ToString()));                    pars.Add(new SqlParameter("@Avgdata1", Avgdata1));                    pars.Add(new SqlParameter("@Avgdata2", Avgdata2));                    pars.Add(new SqlParameter("@Avgdata3", Avgdata3));                    string sql = @"if not exists(select * from  dbo.T_twitter where  datetime=@whereDatetime) begininsert T_twitter (datetime,LatestHourdata1,LatestHourdata2,LatestHourdata3,Avgdata1,AvgData2,AvgData3)VALUES(@datetime,@LatestHourdata1,@LatestHourdata2,@LatestHourdata3,@Avgdata1,@Avgdata2,@Avgdata3) end";                    ControlDB(sql, pars, "");//插入數據                }            }        }        /// <summary>        /// 獲取頁面數據保存至txt        /// </summary>        public static void GetUSA()        {            WebRequest request = WebRequest.Create(GetURL);            WebResponse response = request.GetResponse();            StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding("gb2312"));            //reader.ReadToEnd() 表示取得網頁的源碼            FileStream fs = new FileStream(txtURL, FileMode.Create);            byte[] data = System.Text.Encoding.Default.GetBytes(reader.ReadToEnd());            //開始寫入            fs.Write(data, 0, data.Length);            //清空緩沖區、關閉流            fs.Flush();            fs.Close();        }        /// <summary>        /// 根據路徑讀取txt文件        /// </summary>        /// <param name="path">txt路徑</param>        /// <returns></returns>        public static List<string[]> Read(string path)        {            List<string[]> list = new List<string[]>();            StreamReader sr = new StreamReader(path, Encoding.Default);            String line;            while ((line = sr.ReadLine()) != null)            {                int i = line.ToString().IndexOf("title");                if (i > 0)                {                    string titleStr = line.ToString().Substring(i + 7); //截取到title后面的值                    string[] titlelist = titleStr.Split('"');        //以"  截取                    string titledata = titlelist[0];                    string[] datalist = titledata.Split('&');  //以& 截取                    string data = datalist[0];                    string[] datastrlist = data.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries);//以; 截取                    list.Add(datastrlist);                }            }            sr.Close();            return list;        }        /// <summary>        /// 增查表        /// </summary>        /// <returns></returns>        public static DataTable ControlDB(string sql, List<SqlParameter> par, string type)        {            Dataaccess controData = new DataAccess();            DataTable resultDT = new DataTable();            if (type == "select")            {                resultDT = controData.GetDataTable(sql, par.ToArray());            }            else            {                int result = controData.ExecuteSql(sql, par.ToArray());            }            return resultDT;        }    }}

 Demo下載:

 http://files.VEVb.com/files/xinchun/GetUSAData.zip


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
5252色成人免费视频| 91在线播放国产| 国产丝袜一区二区三区免费视频| 国产精品盗摄久久久| 国产网站欧美日韩免费精品在线观看| 一本大道久久加勒比香蕉| 欧美中文在线观看| 国产精品久久久久久av福利| 精品日韩视频在线观看| 91精品国产乱码久久久久久久久| 91在线视频九色| 97**国产露脸精品国产| 久久在精品线影院精品国产| 国产福利精品在线| 欧美日本精品在线| 91av视频在线观看| 日本久久久久久久久| 九九视频这里只有精品| 亚洲成人xxx| 日韩av电影在线免费播放| 日日噜噜噜夜夜爽亚洲精品| 亚洲色图综合久久| 国产精品中文在线| 国产一区二区三区直播精品电影| 日本久久久久亚洲中字幕| 国产偷亚洲偷欧美偷精品| 最新91在线视频| 九九热精品视频| 久久久久国产精品免费网站| 日本亚洲欧洲色α| 亚洲成色777777女色窝| 亚洲偷欧美偷国内偷| 欧美高清视频免费观看| 成人在线视频网站| 欧美激情精品久久久久久久变态| 国产精品亚洲激情| 午夜精品美女自拍福到在线| 国语对白做受69| 亚洲专区国产精品| 亚洲伊人第一页| 国产精品成熟老女人| 日韩在线激情视频| 日韩在线中文字幕| 久久久久九九九九| 日韩美女视频在线观看| 国产欧美日韩免费| 久久福利视频网| 美女精品久久久| 久热精品视频在线观看| 午夜剧场成人观在线视频免费观看| 亚洲最新av在线网站| 国产一区二区动漫| 欧美激情精品久久久久久大尺度| 欧美人在线视频| 久久精品男人天堂| 另类图片亚洲另类| 国产精品欧美一区二区| 亚洲性av在线| 欧美国产欧美亚洲国产日韩mv天天看完整| 中文在线资源观看视频网站免费不卡| 九九精品在线播放| 日韩免费在线播放| 777午夜精品福利在线观看| 日韩高清有码在线| 国产精品男人爽免费视频1| 久久久久久久久久久国产| 日韩国产精品亚洲а∨天堂免| 亚洲欧美国产精品专区久久| 亚洲最新av在线网站| 国产精彩精品视频| 欧美诱惑福利视频| www高清在线视频日韩欧美| 国产精品精品国产| 操人视频在线观看欧美| 国产精品一区=区| 欧美丰满老妇厨房牲生活| 国产精品久久久久久久一区探花| 亚洲精品久久久久久久久久久久| 亚洲欧美综合图区| 久久中文精品视频| 中文字幕少妇一区二区三区| 91九色单男在线观看| 久久精品影视伊人网| 亚洲国产精品福利| 欧美日本精品在线| 91精品啪aⅴ在线观看国产| 亚洲最新在线视频| 色爱av美腿丝袜综合粉嫩av| 亚洲国产高潮在线观看| 视频在线观看一区二区| 久久91精品国产| 韩国三级日本三级少妇99| 色综合久久悠悠| 亚洲国模精品私拍| 亚洲跨种族黑人xxx| 国产999精品久久久| 日韩视频在线免费观看| www.精品av.com| 欧美极品少妇与黑人| 国产欧美在线看| 亚洲精品美女在线观看播放| 欧美日韩第一视频| 日本国产一区二区三区| 日韩成人小视频| 亚洲国产欧美一区二区三区同亚洲| 欧美激情视频一区| 一区二区三区视频免费在线观看| 亚洲精选一区二区| 狠狠躁18三区二区一区| 日韩中文字幕国产精品| 欧美疯狂做受xxxx高潮| 亚洲国产精品高清久久久| 亚洲美女激情视频| 欧美俄罗斯性视频| 久久久久久久久久久免费精品| 欧美贵妇videos办公室| 久久91精品国产| 成人激情免费在线| 日韩av综合网| 欧美亚洲国产另类| 日本不卡免费高清视频| 国产丝袜一区二区三区免费视频| 日韩成人xxxx| 一区二区三区视频免费在线观看| 亚洲国产成人精品久久久国产成人一区| 国产精品96久久久久久又黄又硬| 欧洲亚洲免费在线| 国产精品亚洲网站| 亚洲精品久久视频| 欧美高清第一页| 成人两性免费视频| 国内精品久久久久久久| 隔壁老王国产在线精品| 亚洲精品乱码久久久久久金桔影视| 91精品国产91久久久久福利| 久久影视电视剧免费网站清宫辞电视| 亚洲free性xxxx护士白浆| 精品国产一区二区三区久久狼5月| 欧美大片在线免费观看| 成人在线精品视频| 亚洲专区中文字幕| 日韩一中文字幕| 中国人与牲禽动交精品| 亚洲福利影片在线| 51色欧美片视频在线观看| 91精品视频在线免费观看| 欧美精品第一页在线播放| 国产成人亚洲综合91| 日韩av网站导航| 欧美—级a级欧美特级ar全黄| 欧美成人免费播放| 久久久免费高清电视剧观看| 欧美成人高清视频| 在线观看视频99| 国产精品亚洲综合天堂夜夜| 国产精品爽黄69天堂a| 91精品视频免费看| 久久在线精品视频| 精品国产区一区二区三区在线观看| 久久亚洲精品国产亚洲老地址| 欧美老少做受xxxx高潮| 日本韩国在线不卡| 亚洲韩国欧洲国产日产av| 精品国产自在精品国产浪潮|