精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

ASP.NET數據采集的實現淺析

開發 后端
ASP.NET數據采集的實現向你介紹了如何通過程序實現ASP.NET數據采集的功能,程序中使用了for循環來實現,希望對你有所幫助。

這是我自己寫的一個ASP.NET數據采集程序,是采集一個人才網里面人才的信息,第一次寫Blog,寫的不好不要見笑。

  1. //先按照下面的字段創建一個數據表  ,以便ASP.NET數據采集的歸納
  2.  
  3. 以下為引用的內容:  
  4. public partial class Form2 : Form  
  5.     {  
  6.         public Form2()  
  7.         {  
  8.             InitializeComponent();  
  9.         }  
  10.         //姓名  
  11.         public static string XM = "";  
  12.         //年齡  
  13.         public static string nl = "";  
  14.         //性別  
  15.         public static string XB = "";  
  16.         //身高  
  17.         public static string SG = "";  
  18.         //政治面貌  
  19.         public static string mm = "";  
  20.         //民族  
  21.         public static string MZ = "";  
  22.         //學歷  
  23.         public static string XL = "";  
  24.         //婚姻狀況  
  25.         public static string HK = "";  
  26.         //所學專業  
  27.         public static string ZY = "";  
  28.         //工作經驗  
  29.         public static string GZJY = "";  
  30.         //在職單位  
  31.         public static string ZZDW = "";  
  32.         //在職職位  
  33.         public static string ZZZW = "";  
  34.         //工作經歷  
  35.         public static string GZJL = "";  
  36.         //要求月薪  
  37.         public static string YX = "";  
  38.         //工作性質  
  39.         public static string GZXZ = "";  
  40.         //求職意向  
  41.         public static string QZYX = "";  
  42.         //具體職務  
  43.         public static string JTZW = "";  
  44.         //期望工作地  
  45.         public static string QWGZD = "";  
  46.         //教育情況,語言水平,技術專長  
  47.         public static string QT = "";   
  48.         private void button1_Click(object sender, EventArgs e)  
  49.         {  
  50.             label1.Text = "正在采集數據……";  
  51.  
  52.      //遍歷數據的頁數   
  53.             for (int i = 1; i ﹤=50; i++)  
  54.             {  
  55.                 CJ("http://www.xcjob.cn/renli.asp?pageno=" + i);  
  56.             }  
  57.  
  58.             label1.Text = "恭喜你采集完成!";  
  59.             MessageBox.Show("恭喜你采集完成!");  
  60.         }  
  61.  
  62.         //ASP.NET數據采集之采集數據類
  63.         private void CJ(string Url)  
  64.         {  
  65.      //獲得頁面源文件(Html)  
  66.             string strWebContent = YM(Url);  
  67.  
  68.             //按照Html里面的標簽  取出和數據有關的那段源碼  
  69.             int iBodyStart = strWebContent.IndexOf("﹤body", 0);  
  70.             int aaa = strWebContent.IndexOf("關鍵字:", iBodyStart);  
  71.             int iTableStart = strWebContent.IndexOf("﹤table", aaa);  
  72.             int iTableEnd = strWebContent.IndexOf("﹤/table﹥", iTableStart);  
  73.             string strWeb = strWebContent.Substring(iTableStart, iTableEnd - iTableStart);  
  74.  
  75.             //生成HtmlDocument  
  76.             HtmlElementCollection htmlTR = HtmlTR_Content(strWeb, "tr");  
  77.  
  78.             foreach (HtmlElement tr in htmlTR)  
  79.             {  
  80.                 try 
  81.                 {  
  82.       //姓名  
  83.                     XM = tr.GetElementsByTagName("a")[0].InnerText;  
  84.       //獲得詳細信息頁面的網址  
  85.                     string a = tr.GetElementsByTagName("a")[0].GetAttribute("href").ToString();  
  86.                     a = "http://www.xcjob.cn" + a.Substring(11);  
  87.  
  88.                     Content(a);  
  89.                 }  
  90.                 catch { }  
  91.             }  
  92.         }  
  93.  
  94.         //ASP.NET數據采集之采集詳細數據類  
  95.         private void Content(string URL)  
  96.         {  
  97.             try 
  98.             {  
  99.                 string strWebContent = YM(URL);  
  100.  
  101. //按照Html里面的標簽 取出和數據有關的那段源碼  
  102.                 int iBodyStart = strWebContent.IndexOf("﹤body", 0);  
  103.                 int iTableStart = strWebContent.IndexOf("瀏覽次數", iBodyStart);  
  104.                 int iTableEnd = strWebContent.IndexOf("﹤table", iTableStart);  
  105.                 int dd = strWebContent.IndexOf("﹤/table﹥", iTableEnd);  
  106.                 string strWeb = strWebContent.Substring(iTableEnd, dd - iTableEnd + 8);  
  107.  
  108.                 HtmlElementCollection htmlTR = HtmlTR_Content(strWeb, "table");  
  109.  
  110.                 foreach (HtmlElement tr in htmlTR)  
  111.                 {  
  112.                     try 
  113.                     {  
  114.         //年齡  
  115.                         nl = tr.GetElementsByTagName("tr")[1].GetElementsByTagName("td")[1].InnerText;  
  116.         //性別  
  117.                         string XB_SG = tr.GetElementsByTagName("tr")[1].GetElementsByTagName("td")[3].InnerText;  
  118.                         XB = XB_SG.Substring(0, 1);  
  119.         //身高  
  120.                         SG = XB_SG.Substring(11);  
  121.         //政治面貌  
  122.                         mm = tr.GetElementsByTagName("tr")[2].GetElementsByTagName("td")[1].InnerText;  
  123.         //民族  
  124.                         MZ = tr.GetElementsByTagName("tr")[2].GetElementsByTagName("td")[3].InnerText;  
  125.         //學歷  
  126.                         XL = tr.GetElementsByTagName("tr")[3].GetElementsByTagName("td")[1].InnerText;  
  127.         //婚煙狀況  
  128.                         HK = tr.GetElementsByTagName("tr")[3].GetElementsByTagName("td")[3].InnerText;  
  129.         //所學專業  
  130.                         ZY = tr.GetElementsByTagName("tr")[5].GetElementsByTagName("td")[1].InnerText;  
  131.         //工作經驗  
  132.                         GZJY = tr.GetElementsByTagName("tr")[5].GetElementsByTagName("td")[3].InnerText;  
  133.         //在職單位  
  134.                         ZZDW = tr.GetElementsByTagName("tr")[6].GetElementsByTagName("td")[1].InnerText;  
  135.         //在職職位  
  136.                         ZZZW = tr.GetElementsByTagName("tr")[6].GetElementsByTagName("td")[3].InnerText;  
  137.         //工作經歷  
  138.                         GZJY = tr.GetElementsByTagName("tr")[7].GetElementsByTagName("td")[1].InnerText;  
  139.         //要求月薪  
  140.                         YX = tr.GetElementsByTagName("tr")[9].GetElementsByTagName("td")[1].InnerText;  
  141.         //工作性質  
  142.                         GZXZ = tr.GetElementsByTagName("tr")[9].GetElementsByTagName("td")[3].InnerText;  
  143.         //求職意向  
  144.                         QZYX = tr.GetElementsByTagName("tr")[10].GetElementsByTagName("td")[1].InnerText;  
  145.         //具體職務  
  146.                         JTZW = tr.GetElementsByTagName("tr")[10].GetElementsByTagName("td")[3].InnerText;  
  147.         //期望工作地  
  148.                         QWGZD = tr.GetElementsByTagName("tr")[11].GetElementsByTagName("td")[1].InnerText;  
  149.         //教育情況,語言水平,技術專長  
  150.                         QT = tr.GetElementsByTagName("tr")[13].GetElementsByTagName("td")[1].InnerText;  
  151.  
  152.                         insert();  
  153.                     }  
  154.                     catch 
  155.                     { }  
  156.                 }  
  157.             }  
  158.             catch { }  
  159.         }  
  160.  
  161.       //將數據插入數據庫    
  162.       private void insert()  
  163.         {  
  164.             try 
  165.             {  
  166.                 string str = "Provider=Microsoft.Jet.OleDb.4.0;Data Source=Data.mdb";  
  167.                 string sql = "insert into 人才信息 (姓名,年齡,性別,身高,政治面貌,民族,學歷,婚煙狀況,所學專業,";  
  168.                 sql += "工作經驗,在職單位,在職職位,工作經歷,要求月薪,工作性質,求職意向,具體職務,期望工作地,其他) values ";  
  169.                 sql += "('" + XM + "'," + nl + ",'" 
  170. + XB + "','" + SG + "','" + mm + "','" + MZ + "','" 
  171. + XL + "','" + HK + "','" + ZY + "','" + GZJY + "','" 
  172. + ZZDW + "','" + ZZZW + "',";  
  173.                 sql += "'" + GZJY + "','" + YX + "','" 
  174. + GZXZ + "','" + QZYX + "','" + JTZW + "','" + QWGZD + "','" + QT + "')";  
  175.  
  176.                 OleDbConnection con = new OleDbConnection(str);  
  177.                 OleDbCommand com = new OleDbCommand(sql, con);  
  178.                 con.Open();  
  179.                 com.ExecuteNonQuery();  
  180.                 con.Close();  
  181.             }  
  182.      catch { }  
  183.         }  
  184.  
  185.         //返回一個HtmlElementCollection,然后進行查詢內容  
  186.         private HtmlElementCollection HtmlTR_Content(string strWeb, string tj)  
  187.         {  
  188.             try 
  189.             {  
  190. //生成HtmlDocument  
  191.                 WebBrowser webb = new WebBrowser();  
  192.                 webb.Navigate("about:blank");  
  193. //window.document返回一個htmldocument對象,表示對一個html文檔的操作  
  194. //htmldocument對象是在xmldocument基礎上建立的,具有xmldocument的一切方法屬性  
  195.                 HtmlDocument htmldoc = webb.Document.OpenNew(true);  
  196.                 htmldoc.Write(strWeb);  
  197.                 HtmlElementCollection htmlTR = htmldoc.GetElementsByTagName(tj);  
  198.  
  199.                 return htmlTR;  
  200.             }  
  201.             catch { return null; }  
  202.         }  
  203.  
  204.  
  205.         //獲得網址原代碼  
  206.         private string YM(string Url)  
  207.         {  
  208.             string strResult = "";  
  209.  
  210.             try 
  211.             {  
  212.                 HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);  
  213.                 request.Method = "GET";  
  214.                 HttpWebResponse response = (HttpWebResponse)request.GetResponse();  
  215.                 Stream streamReceive = response.GetResponseStream();  
  216.                 Encoding encoding = Encoding.GetEncoding("GB2312");  
  217.                 StreamReader streamReader = new StreamReader(streamReceive, encoding);  
  218.                 strResult = streamReader.ReadToEnd();  
  219.             }  
  220.             catch { }  
  221.  
  222.             return strResult;  
  223.         }  
  224.     } 

這個ASP.NET數據采集程序寫的不是太好,是用for循環遍歷出來的,效率不是太高,可以使用多線程實現ASP.NET數據采集,那么希望對你了解ASP.NET數據采集有所幫助。

【編輯推薦】

  1. ASP.NET的五大數據控件淺談
  2. ASP.NET數據綁定控件比較淺析
  3. ASP.NET的GridView與DataGrid控件比較淺析
  4. ASP.NET數據緩存機制淺析
  5. ASP.NET數據緩存之數據緩存淺談
責任編輯:仲衡 來源: 中國站長站
相關推薦

2009-07-29 10:52:09

數據采集程序ASP.NET技巧

2009-08-13 17:52:27

C#數據采集

2009-07-28 10:01:16

ASP.NET Exc

2009-07-27 15:34:11

MembershipASP.NET

2009-07-27 10:18:12

TypeResolveASP.NET

2009-07-24 13:41:15

ASP.NET AJA

2009-08-05 18:36:12

ASP.NET Che

2009-08-03 18:35:51

ASP.NET數據緩存

2009-07-31 12:43:59

ASP.NET MVC

2009-08-05 15:50:13

ASP.NET優點

2009-07-22 18:03:00

ASP.NET ASP

2009-11-06 09:23:41

ASP.NET高效分頁

2009-07-23 10:37:43

2009-08-05 16:59:55

ASP.NET組件設計

2009-07-24 10:53:51

ASP.NET實現靜態

2009-08-10 13:32:15

ASP.NET TimASP.NET組件設計

2009-07-31 18:12:58

ASP.NET數據綁定

2009-07-29 14:12:45

ASP.NET tra

2009-07-28 17:36:21

ASP.NET數據庫連

2009-08-04 14:56:34

ASP.NET數據類型
點贊
收藏

51CTO技術棧公眾號

国产亚洲色婷婷久久99精品91| 99在线免费视频观看| 亚洲最大成人在线视频| 亚洲精品va| 精品欧美乱码久久久久久 | 国产精品日韩欧美大师| 一级片久久久久| 亚洲成人黄色| 在线日韩一区二区| 91黄色在线看| 国产美女视频一区二区三区| 狠狠狠色丁香婷婷综合久久五月| 久久久在线视频| 中文字幕xxx| 日韩一二三区在线观看| 在线观看网站黄不卡| 国产freexxxx性播放麻豆| 成人精品一区二区三区免费 | 日本在线看片免费人成视1000| 国产成人av电影在线观看| 日韩美女主播视频| 久久久久成人片免费观看蜜芽| 免费一区二区三区视频导航| 69堂成人精品免费视频| 日本xxxxxxx免费视频| 麻豆av在线导航| 久久久久久日产精品| 成人3d动漫一区二区三区91| 在线观看视频中文字幕| 久久久久久久欧美精品| 欧美精品18videosex性欧美| 日韩在线一卡二卡| 成人毛片免费看| 亚洲区一区二区| 小毛片在线观看| 麻豆视频久久| 欧美一区二区视频网站| 三级a在线观看| 成人影院网站| 欧美日韩美女视频| 男人的天堂狠狠干| 成人影院在线播放| 一区二区三区四区蜜桃| 免费久久久久久| 尤物在线视频| 国产精品久久综合| 亚洲精品国产一区| 成人av电影观看| 国产欧美精品一区aⅴ影院| 免费看污久久久| 青青草免费观看免费视频在线| 成人91在线观看| 国产一区免费视频| 五月激情婷婷综合| 99精品1区2区| 久久青青草综合| 青青免费在线视频| 久久久www免费人成精品| 欧美日韩国产精品一卡| 黄网在线免费| 中文字幕高清一区| 亚洲人一区二区| 日本在线视频网| 亚洲女女做受ⅹxx高潮| japanese在线播放| 9lporm自拍视频区在线| 精品久久久久久久久久久久久久| 日本网站免费在线观看| 国产精品专区免费| 欧美午夜免费电影| 久久精品久久99| 成人av动漫| 日韩精品一区二区视频| 日本综合在线观看| 亚洲mv大片欧洲mv大片| 欧美激情一区二区三区久久久 | 国产精品扒开腿做爽爽| 日韩a一区二区| 久久人人爽亚洲精品天堂| 强行糟蹋人妻hd中文| 亚洲久久一区二区| 国产精品99导航| 国产精品无码白浆高潮| 高潮精品一区videoshd| 免费成人在线观看av| 成在在线免费视频| 一区二区三区精密机械公司| 男人天堂1024| 91丨精品丨国产| 亚洲第一综合天堂另类专| 91精品人妻一区二区| 日韩精品不卡一区二区| 欧美精品精品精品精品免费| 日韩特黄一级片| 欧美aaaaaa午夜精品| www 成人av com| 国产大片在线免费观看| 亚洲综合成人在线视频| 日本精品久久久久中文字幕| 美女精品久久| 一区二区亚洲精品国产| 久久精品免费av| 免费精品视频在线| 国产精品一区二区av| 91精品国产91久久久久游泳池 | 久久久999免费视频| 青青国产精品| 日韩高清不卡av| 男人与禽猛交狂配| 日韩激情视频网站| 国产精品jizz视频| 天堂资源在线中文| 欧美性猛交xxxx免费看漫画| 亚洲911精品成人18网站| 久久爱www成人| 久久久久久国产精品三级玉女聊斋 | 中文字幕视频三区| 欧美人与拘性视交免费看| 欧美激情国产日韩精品一区18| 免费在线观看av的网站| 99久久久无码国产精品| 女人床在线观看| 亚洲免费看片| 中日韩美女免费视频网站在线观看 | 色婷婷激情久久| 国产成人av片| 外国成人免费视频| 国产精品十八以下禁看| 狠狠狠综合7777久夜色撩人| 亚洲成人精品在线观看| 97中文字幕在线观看| 亚洲精品成人无限看| 国产美女久久精品| jizz在线观看中文| 欧美自拍偷拍午夜视频| 欧美丰满少妇人妻精品| 在线欧美一区| 国产无套精品一区二区| 五月婷婷视频在线观看| 91精品婷婷国产综合久久性色| 色屁屁草草影院ccyy.com| 久久国产精品亚洲77777| 久久久水蜜桃| 免费日韩电影| 国产亚洲综合久久| 中文字幕乱码人妻无码久久| 亚洲国产精品黑人久久久| 天天爽人人爽夜夜爽| 欧美一站二站| 国产精品视频自拍| 日本三级视频在线播放| 欧美精品日韩综合在线| 欧美性x x x| 国产成人在线网站| 成年人看的毛片| 日本欧美韩国国产| 日本久久久久久久久久久| 岛国大片在线观看| 欧美挠脚心视频网站| 韩国一级黄色录像| 国产精品小仙女| 蜜臀av色欲a片无码精品一区| 成人av资源网址| 日本免费久久高清视频| 搞黄视频免费在线观看| 欧美三级韩国三级日本三斤| 国产又粗又硬又长又爽| 国产99久久久精品| 91黄色小网站| 国产高清一区| 国产精品大全| 亚洲精品一级二级| 久久综合伊人77777| 蜜桃av中文字幕| 色妞www精品视频| 日本黄色片免费观看| 成人精品电影在线观看| 欧美两根一起进3p做受视频| 久久精品高清| 成人永久免费| 日韩高清中文字幕一区二区| 色偷偷噜噜噜亚洲男人的天堂| va婷婷在线免费观看| 婷婷久久综合九色综合伊人色| 国产传媒国产传媒| 国产精品一区在线观看你懂的| 日本福利视频在线| 99精品在线观看| 精品久久久久久乱码天堂| 国产黄色精品| 久久久久久中文字幕| 成人免费在线观看| 亚洲国产天堂久久综合| 中文字幕乱码中文字幕| 亚洲亚洲精品在线观看| 国产一区二区三区精品在线| 国产高清精品网站| 麻豆一区二区三区视频| 在线观看的日韩av| 91手机视频在线| 日韩深夜影院| 成人久久久久爱| 依依综合在线| 欧美激情按摩在线| 里番在线观看网站| 亚洲女人被黑人巨大进入| 99久久国产免费| 欧美午夜精品理论片a级按摩| 久久高清免费视频| 亚洲日本护士毛茸茸| 蜜桃传媒一区二区亚洲| 成人三级伦理片| 不卡的在线视频| 亚洲欧美日韩在线观看a三区| 糖心vlog在线免费观看| 日韩欧美精品综合| 欧美日韩三区四区| 日韩高清影视在线观看| av一区二区三区在线观看| 久久久久黄色| 国产精品视频1区| 成人自拍视频网| 欧美在线视频免费| 国产精品13p| 欧美日韩国产va另类| 搞黄网站在线观看| 日韩中文字幕欧美| 在线激情小视频| 永久免费毛片在线播放不卡| 日本一区二区三区在线观看视频| 亚洲精品一区二区三区99| av中文在线观看| 日韩小视频在线观看专区| 国产三级第一页| 91精品在线免费| 国产xxxx在线观看| 日韩欧美一级片| 国内精品久久久久久久久久久| 欧美老人xxxx18| 国产又大又长又粗| 在线观看91av| 精品人妻av一区二区三区| 日韩午夜av一区| www久久久久久| 精品国产区一区| 欧美自拍偷拍一区二区| 精品国产乱码久久久久久浪潮| 亚洲成a人片77777精品| 精品日韩在线一区| 日韩在线观看视频一区| 亚洲国产欧美自拍| 日韩偷拍自拍| 伊人亚洲福利一区二区三区| www.亚洲视频| 日韩中文视频免费在线观看| 秋霞午夜在线观看| 欧美成人久久久| 欧美人体视频xxxxx| 午夜精品视频网站| 欧美大胆成人| 国产欧美日韩精品丝袜高跟鞋| 不卡一区视频| 高清日韩一区| 啄木系列成人av电影| 午夜精品美女久久久久av福利| 91亚洲一区| 国产欧美精品aaaaaa片| 免费看亚洲片| 天堂一区在线观看| 国产精品综合二区| 水蜜桃av无码| 国产精品热久久久久夜色精品三区 | 97在线视频国产| 日韩精品三区| 91亚洲人电影| 日本欧美三级| 正义之心1992免费观看全集完整版| 中文字幕免费一区二区| 精品久久久久久久久久中文字幕| 日韩精品乱码免费| 成人高清在线观看视频| 91一区二区在线| 成人免费视频入口| 亚洲午夜激情av| 无码久久精品国产亚洲av影片| 91精品国产综合久久久久| 天堂av手机版| 日韩视频在线一区| 绿色成人影院| 亚洲精品女av网站| 免费国产自久久久久三四区久久| 国产系列第一页| 国产农村妇女精品一二区| 青青草久久伊人| 91丨porny丨国产入口| 小向美奈子av| 欧美色videos| www.综合色| www.日韩av.com| 成人黄色免费短视频| 99re国产视频| 天天做综合网| 国产三级日本三级在线播放| 国产999精品久久久久久绿帽| 亚洲天堂久久新| 亚洲第一福利视频在线| 97精品人妻一区二区三区在线| 精品视频中文字幕| 色爱综合区网| 91久久嫩草影院一区二区| 久久av中文| www.浪潮av.com| 国产成人a级片| 青草影院在线观看| 精品视频免费在线| 男女网站在线观看| 午夜剧场成人观在线视频免费观看| 亚洲精品大全| 亚洲国产精品日韩| 久久综合九色| 亚洲专区区免费| 午夜伊人狠狠久久| 亚洲美女福利视频| 欧美成人精品xxx| 亚洲一区二区三区久久久| 欧美日韩天天操| 国产精品视区| a天堂视频在线观看| 亚洲图片一区二区| 99在线精品视频免费观看软件 | 欧美精品一区二区久久久| av观看在线| 亚洲japanese制服美女| 888久久久| 久久人人爽人人片| 亚洲精选免费视频| 国产黄色一级大片| 久久亚洲国产成人| 国产一区二区高清在线| 只有这里有精品| 国产一区二区精品在线观看| 在线日韩国产网站| 日韩一区二区电影| 免费污视频在线观看| 国产精品久久久久久久久久直播 | 欧美影视一区二区三区| 韩国三级av在线免费观看| 国产成人精品av| 清纯唯美亚洲综合一区| 亚洲欧洲日本精品| 综合分类小说区另类春色亚洲小说欧美 | 正在播放亚洲一区| 97超碰在线公开在线看免费| 99re国产| 久久国产66| 波多野结衣欲乱| 日韩一区二区三区免费看| 欧美hdxxxxx| 蜜桃传媒一区二区| 日韩电影免费在线观看网站| 亚洲激情图片网| 日韩欧美国产电影| av日韩亚洲| 亚洲精品二区| 大白屁股一区二区视频| 亚洲日本视频在线观看| 中日韩美女免费视频网站在线观看| 先锋影音网一区二区| 日韩a级黄色片| 91香蕉视频污在线| 亚洲图片视频小说| 欧美国产乱视频| 伊人春色精品| 超碰中文字幕在线观看| 亚洲国产精品一区二区久久恐怖片| av女名字大全列表| 成人国产精品色哟哟| 伊人久久大香线蕉av超碰演员| 色哟哟精品观看| 日韩精品最新网址| 欧洲一级精品| 免费一级淫片aaa片毛片a级| 成人av网站免费| 中文在线观看免费高清| 欧美国产一区二区三区| 国产剧情在线观看一区| 成人三级做爰av| 色综合激情五月| 日本一本在线免费福利| 日本不卡二区高清三区| 国产精品一区二区男女羞羞无遮挡| 国产午夜性春猛交ⅹxxx| 久久在线免费观看视频| 国产成人黄色| 亚洲自拍偷拍精品| 欧美日韩国产美| 伊伊综合在线| 欧美乱大交xxxxx潮喷l头像| 中文一区二区在线观看| 五月天丁香视频|