【web service调用】 抓取资源
来源:互联网 发布:淘宝2017今日成交量 编辑:程序博客网 时间:2024/06/03 05:13
<span style="font-size:14px;background-color: rgb(255, 255, 255);">web service调用步骤</span>
<span style="font-size:14px;background-color: rgb(255, 255, 255);">1、右键 项目-->引用-->添加服务引用</span>
<span style="font-size:14px;background-color: rgb(255, 255, 255);">2、在命名空间写入一个名称,然后 --> 高级</span>
<span style="font-size:14px;background-color: rgb(255, 255, 255);">3、-->添加web引用</span>
<span style="font-size:14px;background-color: rgb(255, 255, 255);">4、输入asmx地址,然后转到,然后点击 -->添加引用,结束</span>
using System.IO;using System.Net;using System.Text;using System.Xml;using System;using Newtonsoft.Json;using System.Drawing;using System.Drawing.Imaging;using Newtonsoft.Json.Linq;using ConsoleApplication2.com.fengjing.travel;using System.Collections.Generic;using System.Threading;using System.Linq;/* http://travel.fengjing.com/HolidaySvc.asmx{"RCode":"fengjing@#*!2014","ClientType":"1","Module":"scenic","Method":"GetScenicPicList","Data":"11749"} 图片 {"RCode":"fengjing@#*!2014","ClientType":"1","Module":"scenic","Method":"GetScenicLBS","Data":{"scenicId":"11749"}} 坐标{"RCode":"fengjing@#*!2014","ClientType":"1","Module":"scenic","Method":"getscenicofvoice","Data":{"scenicId":"11749","userId":""}} 景区+所有子景点列表{"RCode":"fengjing@#*!2014","ClientType":"1","Module":"scenic","Method":"getsceniclistofcity","Data":{"PageIndex":3,"PageSize":20,"QueryDict":{"cityname":"无锡","voice":"1"}}} 所有景区第3页{"RCode":"fengjing@#*!2014","ClientType":"1","Module":"scenic","Method":"getsceniclistofcity","Data":{"PageIndex":1,"PageSize":20,"QueryDict":{"cityname":"无锡","voice":"1"}}} 所有景区第1页{"RCode":"fengjing@#*!2014","ClientType":0,"Module":"SmartTour","Method":"GetRegionList","Data":{"RegionKey":""}} 所有城市*/class City{ public string Initial { get; set; } public string Code { get; set; } public string Parent { get; set; } public string Name { get; set; } public string IsSmartTourCity { get; set; }}class Scenic{ public string ScenicId { get; set; } public string SName { get; set; } public string PriceNotes { get; set; } public string City { get; set; } public string County { get; set; } public string Level { get; set; } public string ScenicMes { get; set; } public string ScenicPic { get; set; } public string ListionVoiceCount { get; set; } public string TicketCounT { get; set; } public string SalePrice { get; set; } public string voice_Picture { get; set; } public string isVoice { get; set; } public string isPiao { get; set; } public string lon { get; set; } public string lat { get; set; } public string Address { get; set; } public string Score { get; set; } public string CommentCount { get; set; } public string CommentList { get; set; } public string FavoriteCountOfPiao { get; set; } public string IsFavoriteOfPiao { get; set; } public string FavoriteCountOfVoice { get; set; } public string IsFavoriteOfVoice { get; set; } public string VoiceFile { get; set; } public string scenicDistance { get; set; } public string PicCount { get; set; } public string LocalVoiceCount { get; set; } public string LocalVoiceTypeCount { get; set; }}class Scenic1{ public string ScenicId { get; set; } public string SName { get; set; } public string PriceNotes { get; set; } public string City { get; set; } public string County { get; set; } public string Level { get; set; } public string ScenicMes { get; set; } public string ScenicPic { get; set; } public string ListionVoiceCount { get; set; } public string TicketCounT { get; set; } public string SalePrice { get; set; } public string voice_Picture { get; set; } public string isVoice { get; set; } public string isPiao { get; set; } public string lon { get; set; } public string lat { get; set; } public string mapPath { get; set; } public string Address { get; set; } public string Score { get; set; } public string FavoriteCountOfVoice { get; set; } public string IsFavoriteOfVoice { get; set; } public string IsScenicTrfface { get; set; } public string IsScenicNews { get; set; } public string IsScenicCustom { get; set; } public string IsScenicFood { get; set; } public string scType { get; set; } public string Traffic { get; set; } public string PicCount { get; set; }}class ScenicChild{ public string ScenicId { get; set; } public string SpotId { get; set; } public string FileName { get; set; } public string FileSize { get; set; } public string InertTimeStr { get; set; } public string SummaryTxt { get; set; } public string ImgPath { get; set; } public string SpotName { get; set; } public string FileExt { get; set; } public string FileNameShort { get; set; } public string localvoicelist { get; set; }}class Spot{ public string Title { get; set; } public string XCoord { get; set; } public string YCoord { get; set; } public string ScenicId { get; set; } public string SpotId { get; set; } public string SpotName { get; set; }}namespace ConsoleApplication2{ class Program { public static HolidaySvc svc = new HolidaySvc(); public static int CityCount; //城市个数 public static int ScenicCount; //每个城市景点个数 public static int ScenicChildCount; //每个景点语音个数 public static int ImgUrlCount; //图片个数 public static int SpotCount; //现场个数 public static City[] city = new City[500]; public static Scenic1 scenic1 = new Scenic1(); public static ScenicChild[] scenicchild = new ScenicChild[100]; public static string[] url = new string[50]; public static Spot[] spot = new Spot[100]; public static void getCityArray() { string senddata = "{\"RCode\":\"fengjing@#*!2014\",\"ClientType\":0,\"Module\":\"SmartTour\",\"Method\":\"GetRegionList\",\"Data\":{\"RegionKey\":\"\"}}"; string ss = svc.RequestServiceData(senddata); ss = "[" + ss + "]"; using (StreamWriter sw = new StreamWriter(@"D: \ALL\CityJson.txt")) { sw.WriteLine(ss); } JArray jsonObj = JArray.Parse(ss); JObject j = (JObject)jsonObj.First; j = (JObject)j["Data"]; jsonObj = (JArray)j["Citys"]; foreach (JObject jObject in jsonObj) { city[CityCount] = new City(); city[CityCount].Initial = jObject["Initial"].ToString(); city[CityCount].Code = jObject["Code"].ToString(); city[CityCount].Parent = jObject["Parent"].ToString(); city[CityCount].Name = jObject["Name"].ToString(); city[CityCount].IsSmartTourCity = jObject["IsSmartTourCity"].ToString(); CityCount++; } } public static void CreateScenicArray(string city, string path) { List<Scenic> scenic = new List<Scenic>(); ScenicCount = 0; for (int i = 1; i < 50; i++) { string senddata = "{\"RCode\":\"fengjing@#*!2014\",\"ClientType\":\"1\",\"Module\":\"scenic\",\"Method\":\"getsceniclistofcity\",\"Data\":{\"PageIndex\":" + i.ToString() + ",\"PageSize\":20,\"QueryDict\":{\"cityname\":\"" + city + "\",\"voice\":\"1\"}}}"; string s = svc.RequestServiceData(senddata); s = "[" + s + "]"; JArray jsonObj = JArray.Parse(s); JObject j = (JObject)jsonObj.First; string f = j["Data"].ToString(); if (f == "") { break; } using (StreamWriter sw = new StreamWriter(path + @"\景点列表JSON.txt")) { sw.WriteLine(f); } jsonObj = (JArray)j["Data"]; foreach (JObject jObject in jsonObj) { var sc = new Scenic(); sc.ScenicId = jObject["ScenicId"].ToString(); sc.SName = jObject["SName"].ToString(); sc.PriceNotes = jObject["PriceNotes"].ToString(); sc.City = jObject["City"].ToString(); sc.County = jObject["County"].ToString(); sc.Level = jObject["Level"].ToString(); sc.ScenicMes = jObject["ScenicMes"].ToString(); sc.ScenicPic = jObject["ScenicPic"].ToString(); sc.ListionVoiceCount = jObject["ListionVoiceCount"].ToString(); sc.TicketCounT = jObject["TicketCounT"].ToString(); sc.SalePrice = jObject["SalePrice"].ToString(); sc.voice_Picture = jObject["voice_Picture"].ToString(); sc.isVoice = jObject["isVoice"].ToString(); sc.isPiao = jObject["isPiao"].ToString(); sc.lon = jObject["lon"].ToString(); sc.lat = jObject["lat"].ToString(); sc.Address = jObject["Address"].ToString(); sc.Score = jObject["Score"].ToString(); sc.CommentCount = jObject["CommentCount"].ToString(); sc.CommentList = jObject["CommentList"].ToString(); sc.FavoriteCountOfPiao = jObject["FavoriteCountOfPiao"].ToString(); sc.IsFavoriteOfPiao = jObject["IsFavoriteOfPiao"].ToString(); sc.FavoriteCountOfVoice = jObject["FavoriteCountOfVoice"].ToString(); sc.IsFavoriteOfVoice = jObject["IsFavoriteOfVoice"].ToString(); sc.VoiceFile = jObject["VoiceFile"].ToString(); sc.scenicDistance = jObject["scenicDistance"].ToString(); sc.PicCount = jObject["PicCount"].ToString(); sc.LocalVoiceCount = jObject["LocalVoiceCount"].ToString(); sc.LocalVoiceTypeCount = jObject["LocalVoiceTypeCount"].ToString(); scenic.Add(sc); ScenicCount++; } } //for (int i = 2; i < ScenicCount; i++) //从2开始忽略广州塔和罗浮宫============================================================== try { scenic.Skip(2).ToList().AsParallel().ForAll(sc => { // var sc = scenic[i]; DirectoryInfo dir = new DirectoryInfo(path); dir.CreateSubdirectory(sc.SName);//创建景点目录 Console.WriteLine(sc.SName + "目录创建完毕");//打印查看 string path1 = path + @"\" + sc.SName; dir = new DirectoryInfo(path1); dir.CreateSubdirectory("Scenic");//创建景点目录下的景点资源目录 using (StreamWriter sw = new StreamWriter(path1 + @"\Scenic\Scenic.txt"))//创建简介文本文件并写入 { sw.WriteLine(sc.ScenicId); sw.WriteLine(sc.SName); sw.WriteLine(sc.PriceNotes); sw.WriteLine(sc.City); sw.WriteLine(sc.County); sw.WriteLine(sc.Level); sw.WriteLine(sc.ScenicMes); sw.WriteLine(sc.ScenicPic); sw.WriteLine(sc.ListionVoiceCount); sw.WriteLine(sc.TicketCounT); sw.WriteLine(sc.SalePrice); sw.WriteLine(sc.voice_Picture); sw.WriteLine(sc.isVoice); sw.WriteLine(sc.isPiao); sw.WriteLine(sc.lon); sw.WriteLine(sc.lat); sw.WriteLine(sc.Address); sw.WriteLine(sc.Score); sw.WriteLine(sc.CommentCount); sw.WriteLine(sc.CommentList); sw.WriteLine(sc.FavoriteCountOfPiao); sw.WriteLine(sc.IsFavoriteOfPiao); sw.WriteLine(sc.FavoriteCountOfVoice); sw.WriteLine(sc.IsFavoriteOfVoice); sw.WriteLine(sc.VoiceFile); sw.WriteLine(sc.scenicDistance); sw.WriteLine(sc.PicCount); sw.WriteLine(sc.LocalVoiceCount); sw.WriteLine(sc.LocalVoiceTypeCount); sw.WriteLine("=================================================="); } downloadPicture(sc.ScenicPic, path1 + @"\Scenic\ScenicPic.jpg"); downloadPicture(sc.voice_Picture, path1 + @"\Scenic\voice_Picture.jpg"); downloadSound(sc.VoiceFile, path1 + @"\Scenic\VoiceFile.mp3"); try { dir.CreateSubdirectory("Scenic1");//创建景点目录下的Scenic1目录 CreateScenic1(sc.ScenicId, path1 + @"\Scenic1"); CreateScenic1Child(sc.ScenicId, path1 + @"\Scenic1"); //下载spot声音 } catch (Exception e) { Console.WriteLine(e.Message + "CreateScenic1错误"); } try { dir.CreateSubdirectory("Images");//创建景点目录下的Images目录 CreateImg(sc.ScenicId, path1 + @"\Images"); } catch (Exception e) { Console.WriteLine(e.Message + "CreateImg错误"); } try { CreateSpot(sc.ScenicId, path1); //创建现场所有坐标点txt } catch (Exception e) { Console.WriteLine(e.Message + "CreateSpot错误"); } }); } catch(Exception e) { Console.WriteLine(e.Message+"sc错误"); } } public static void CreateScenic1(string id, string path) { string senddata = "{\"RCode\":\"fengjing@#*!2014\",\"ClientType\":\"1\",\"Module\":\"scenic\",\"Method\":\"getscenicofvoice\",\"Data\":{\"scenicId\":\"" + id + "\",\"userId\":\"\"}}"; string s = svc.RequestServiceData(senddata); s = "[" + s + "]"; using (StreamWriter sw = new StreamWriter(path + @"\声音文件Json.txt")) { sw.WriteLine(s); } JArray jsonObj = JArray.Parse(s); JObject j = (JObject)jsonObj.First; j = (JObject)j["Data"]; scenic1.ScenicId = j["ScenicId"].ToString(); scenic1.SName = j["SName"].ToString(); scenic1.PriceNotes = j["PriceNotes"].ToString(); scenic1.City = j["City"].ToString(); scenic1.County = j["County"].ToString(); scenic1.Level = j["Level"].ToString(); scenic1.ScenicMes = j["ScenicMes"].ToString(); scenic1.ScenicPic = j["ScenicPic"].ToString(); scenic1.ListionVoiceCount = j["ListionVoiceCount"].ToString(); scenic1.TicketCounT = j["TicketCounT"].ToString(); scenic1.SalePrice = j["SalePrice"].ToString(); scenic1.voice_Picture = j["voice_Picture"].ToString(); scenic1.isVoice = j["isVoice"].ToString(); scenic1.isPiao = j["isPiao"].ToString(); scenic1.lon = j["lon"].ToString(); scenic1.lat = j["lat"].ToString(); scenic1.mapPath = j["mapPath"].ToString(); scenic1.Address = j["Address"].ToString(); scenic1.Score = j["Score"].ToString(); scenic1.FavoriteCountOfVoice = j["FavoriteCountOfVoice"].ToString(); scenic1.IsFavoriteOfVoice = j["IsFavoriteOfVoice"].ToString(); scenic1.IsScenicTrfface = j["IsScenicTrfface"].ToString(); scenic1.IsScenicNews = j["IsScenicNews"].ToString(); scenic1.IsScenicCustom = j["IsScenicCustom"].ToString(); scenic1.IsScenicFood = j["IsScenicFood"].ToString(); scenic1.scType = j["scType"].ToString(); scenic1.Traffic = j["Traffic"].ToString(); scenic1.PicCount = j["PicCount"].ToString(); downloadPicture(scenic1.mapPath, path + @"\导游图.jpg"); using (StreamWriter sw = new StreamWriter(path + @"\简介1.txt")) { sw.WriteLine(scenic1.ScenicId); sw.WriteLine(scenic1.SName); sw.WriteLine(scenic1.PriceNotes); sw.WriteLine(scenic1.City); sw.WriteLine(scenic1.County); sw.WriteLine(scenic1.Level); sw.WriteLine(scenic1.ScenicMes); sw.WriteLine(scenic1.ScenicPic); sw.WriteLine(scenic1.ListionVoiceCount); sw.WriteLine(scenic1.TicketCounT); sw.WriteLine(scenic1.SalePrice); sw.WriteLine(scenic1.voice_Picture); sw.WriteLine(scenic1.isVoice); sw.WriteLine(scenic1.isPiao); sw.WriteLine(scenic1.lon); sw.WriteLine(scenic1.lat); sw.WriteLine(scenic1.mapPath); sw.WriteLine(scenic1.Address); sw.WriteLine(scenic1.Score); sw.WriteLine(scenic1.FavoriteCountOfVoice); sw.WriteLine(scenic1.IsFavoriteOfVoice); sw.WriteLine(scenic1.IsScenicTrfface); sw.WriteLine(scenic1.IsScenicNews); sw.WriteLine(scenic1.IsScenicCustom); sw.WriteLine(scenic1.IsScenicFood); sw.WriteLine(scenic1.scType); sw.WriteLine(scenic1.Traffic); sw.WriteLine(scenic1.PicCount); sw.WriteLine("=================================================="); } Console.WriteLine(scenic1.SName + "简介创建完毕"); } public static void CreateScenic1Child(string id, string path) { List<ScenicChild> lsc = new List<ScenicChild>(); string senddata = "{\"RCode\":\"fengjing@#*!2014\",\"ClientType\":\"1\",\"Module\":\"scenic\",\"Method\":\"getscenicofvoice\",\"Data\":{\"scenicId\":\"" + id + "\",\"userId\":\"\"}}"; string s = svc.RequestServiceData(senddata); s = "[" + s + "]"; JArray jsonObj = JArray.Parse(s); JObject j = (JObject)jsonObj.First; j = (JObject)j["Data"]; jsonObj = (JArray)j["spotlist"]; foreach (JObject jObject in jsonObj) { var sc = new ScenicChild(); sc.ScenicId = jObject["ScenicId"].ToString(); sc.SpotId = jObject["SpotId"].ToString(); sc.FileName = jObject["FileName"].ToString(); sc.FileSize = jObject["FileSize"].ToString(); sc.InertTimeStr = jObject["InertTimeStr"].ToString(); sc.SummaryTxt = jObject["SummaryTxt"].ToString(); sc.ImgPath = jObject["ImgPath"].ToString(); sc.SpotName = jObject["SpotName"].ToString(); sc.FileExt = jObject["FileExt"].ToString(); sc.FileNameShort = jObject["FileNameShort"].ToString(); sc.localvoicelist = jObject["localvoicelist"].ToString(); lsc.Add(sc); ScenicChildCount++; } try { lsc.ToList().AsParallel().ForAll(sc => { DirectoryInfo dir = new DirectoryInfo(path); dir.CreateSubdirectory(sc.SpotName); using (StreamWriter sw = new StreamWriter(path + @"\" + sc.SpotName + @"\简介.txt")) { sw.WriteLine(sc.ScenicId); sw.WriteLine(sc.SpotId); sw.WriteLine(sc.FileName); sw.WriteLine(sc.FileSize); sw.WriteLine(sc.InertTimeStr); sw.WriteLine(sc.SummaryTxt); sw.WriteLine(sc.ImgPath); sw.WriteLine(sc.SpotName); sw.WriteLine(sc.FileExt); sw.WriteLine(sc.FileNameShort); sw.WriteLine(sc.localvoicelist); sw.WriteLine("=================================================="); } downloadPicture(sc.ImgPath, path + @"\" + sc.SpotName + @"\1.jpg"); downloadSound(sc.FileName, path + @"\" + sc.SpotName + @"\1.mp3"); Console.WriteLine(sc.SpotName + "文件下载完毕"); }); } catch { Console.WriteLine("sc1错误"); } } public static void CreateImg(string id, string path) { ImgUrlCount = 0; string senddata = "{\"RCode\":\"fengjing@#*!2014\",\"ClientType\":\"1\",\"Module\":\"scenic\",\"Method\":\"GetScenicPicList\",\"Data\":\"" + id + "\"}"; string s = svc.RequestServiceData(senddata); s = "[" + s + "]"; using (StreamWriter sw = new StreamWriter(path + @"\Json3.txt")) { sw.WriteLine(s); } JArray jsonObj = JArray.Parse(s); JObject j = (JObject)jsonObj.First; jsonObj = (JArray)j["Data"]; foreach (JObject jObject in jsonObj) { url[ImgUrlCount] = jObject["url"].ToString(); ImgUrlCount++; } for (int i = 0; i < ImgUrlCount; i++) { downloadPicture(url[i], path + @"\" + i.ToString() + ".jpg"); } Console.WriteLine("此景区所有图片下载完毕"); } public static void CreateSpot(string id, string path) { SpotCount = 0; string senddata = "{\"RCode\":\"fengjing@#*!2014\",\"ClientType\":\"1\",\"Module\":\"scenic\",\"Method\":\"GetScenicLBS\",\"Data\":{\"scenicId\":\"" + id + "\"}}"; string s = svc.RequestServiceData(senddata); s = "[" + s + "]"; using (StreamWriter sw = new StreamWriter(path + @"\坐标Json.txt")) { sw.WriteLine(s); } JArray jsonObj = JArray.Parse(s); JObject j = (JObject)jsonObj.First; jsonObj = (JArray)j["Data"]; foreach (JObject jObject in jsonObj) { spot[SpotCount] = new Spot(); spot[SpotCount].Title = jObject["Title"].ToString(); spot[SpotCount].XCoord = jObject["XCoord"].ToString(); spot[SpotCount].YCoord = jObject["YCoord"].ToString(); spot[SpotCount].ScenicId = jObject["ScenicId"].ToString(); spot[SpotCount].SpotId = jObject["SpotId"].ToString(); spot[SpotCount].SpotName = jObject["SpotName"].ToString(); SpotCount++; } using (StreamWriter sw = new StreamWriter(path + @"\Spot.txt")) { for (int i = 0; i < SpotCount; i++) { sw.WriteLine(spot[i].Title + ":" + spot[i].XCoord + ":" + spot[i].YCoord + ":" + spot[i].ScenicId + ":" + spot[i].SpotId + ":" + spot[i].SpotName); } } Console.WriteLine("坐标下载完毕"); } public static void downloadPicture(string url, string path) { try { Uri uri = new Uri(url); WebRequest request = WebRequest.Create(uri); WebResponse response = request.GetResponse(); Stream s = response.GetResponseStream(); Image image = Image.FromStream(s); image.Save(path, ImageFormat.Jpeg);//绝对路径 } catch (Exception e) { Console.WriteLine(e.Message + "图片不存在"); } } public static void downloadSound(string url, string path) { try { //创建请求 HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); //接收响应 HttpWebResponse response = (HttpWebResponse)request.GetResponse(); //输出流 Stream responseStream = response.GetResponseStream(); using (FileStream fs = new FileStream(path, FileMode.Create, FileAccess.Write)) { byte[] bufferBytes = new byte[10000];//缓冲字节数组 int bytesRead = -1; while ((bytesRead = responseStream.Read(bufferBytes, 0, bufferBytes.Length)) > 0) { fs.Write(bufferBytes, 0, bytesRead); } //关闭写入 fs.Flush(); fs.Close(); } } catch (Exception e) { Console.WriteLine(e.Message + ",文件不存在"); } } public static void CreateALL() { List<string> ll = new List<string>(); getCityArray(); string path = @""; for (int i = 0; i < CityCount; i++) { try { if (!ll.Contains(city[i].Initial)) { ll.Add(city[i].Initial); path = @"D:\ALL"; DirectoryInfo _dir = new DirectoryInfo(path); _dir.CreateSubdirectory(city[i].Initial); } path = @"D:\ALL\" + city[i].Initial; DirectoryInfo dir = new DirectoryInfo(path); dir.CreateSubdirectory(city[i].Name);//创建城市目录 Console.WriteLine(city[i].Name + "目录创建完毕");//打印查看 } catch (Exception e) { Console.WriteLine(e.Message + "T错误"); } try { CreateScenicArray(city[i].Name.Replace("市", ""), path + @"\" + city[i].Name); } catch (Exception e) { Console.WriteLine(e.Message + "CreateALL错误"); } } } static void Main(string[] args) { CreateALL(); } }}
0 0
- 【web service调用】 抓取资源
- web service学习资源
- 动态调用Web Service
- js调用web service
- Web Service 异步调用
- 调用 Web Service 示例
- ASP 调用 web service
- 异步调用Web Service
- 动态调用web service
- php调用web service
- 动态调用Web Service
- java 调用 Web Service
- 异步调用Web Service
- JQuery调用Web Service
- Web Service 调用
- C#调用 Web Service
- Web Service调用资料
- Web Service创建、调用
- iOS --延迟执行的几种方法
- nyoj 82迷宫寻宝
- 新站上线前SEO需要做的工作列表
- 加入购物车动画
- (4.4.14.1)Android_关于子控件和父控件的事件响应问题
- 【web service调用】 抓取资源
- 北京林业大学“计蒜客”杯程序设计竞赛 网络赛 A. 喝酒
- SharedPreferenceUtils
- Tablayout 里面的tab 显示的时候靠近在一起的解决办法
- Lua简明教程
- 使用IBM heapAnalyzer分析内存泄露的原因
- 新手seoer怎样恰到好处的展开日常优化工作
- Android中设计模式的比较
- Java并发编程:深入剖析ThreadLocal