webservice+linq

一、 在网页爬数据

1、先获得页面的所有html文本

2、用正则表达式确定需要抓取的数据

3、用IsMatch方法获得匹配的数据后存盘

int pagesize = Convert.ToInt32(txtPageSize.Text.Trim());//获取到总共有多少页

WebClient wc = new WebClient();       //创建实例

wc.Encoding = Encoding.Default;       //确定编码方式

for (int i = 1; i <= pagesize; i++)      //循环指定页码数的次数

{

string url = txtUrl.Text.Trim() + "?pn=";         //URL上加上get传参的方式传递页码

if (string.IsNullOrEmpty(txtUrl.Text.Trim()))    //判断是否输入URL

{

return;

}

url += i;    //加页码

、、string html = wc.DownloadString(url);    //获取到当前页的html内容

MatchCollection mc = Regex.Matches(html, @"[1-9][0-9]{4,11}@(qq|QQ).com");   //匹配正则表达式

StringBuilder sb = new StringBuilder();

foreach (Match m in mc)    //对获得的正则匹配结果做循环处理

{

sb.AppendLine(m.Value + ";");   //每一个匹配的结果做一行数据处理

}

string s = sb.ToString();          //StringBuilder转为字符串

File.AppendAllText(@"d:\1.txt", s, Encoding.Default);    //把字符串追加保存在文本文件中

}

二、webservice

1、用于不同的系统之间的数据通信。

2、实例

A、在web服务项目中添加【web服务(asmx)】类文件。

B、如果web服务需要验证时在web服务开始时做用户名/密码的验证。

C、调用web服务

1)线添加相关web服务的引用:

引用-->添加服务引用-->高级-->添加web引用-->指定服务的url-->指定web引用名称-->添加引用

2) 当修改了web服务内容时除了重新生成外,需要更新web服务:

Web Referrences中找web服务项-->点击更新web服务

D、火车时刻表web服务实例:traintime

traintime.TrainTimeWebService s = new traintime.TrainTimeWebService();    //创建服务实例

string strStart = txtStart.Text.Trim();     //接受始发站

string strEnd = txtEnd.Text.Trim();         //接受终点站

DataTable dt = s.getStationAndTimeByStationName(strStart, strEnd, "").Tables[0];  //获得表结构的结果集

GridView1.DataSource = dt;     //结果集指定为GridView的数据源

GridView1.DataBind();          //绑定GridView

E、飞机时刻表web服务:airtime

airtime.DomesticAirline d = new airtime.DomesticAirline();

string strStart = txtStart.Text.Trim();     //接受始发机场

string strEnd = txtStart.Text.Trim();       //接受到达机场

string strFromTime = txtStart.Text.Trim();  //接受起飞日期范围的开始日期

string strToTime = txtStart.Text.Trim();    //接受起飞日期范围的结束日期

DataTable dt = d.getDomesticAirlinesTime(strStart, strEnd,strFromTime,strToTime).Tables[0];  //获取结果集

GridViewataSource = dt;       //结果集指定为GridView的数据源

GridView1.DataBind();         //绑定GridView

F、发布方法

与其他页面的发布时一样的,然后使用时直接告诉url就可以。

三、Linq

1、概念

LINQ对任何数据类型的集合进行筛选的操作,如:数组,集合,哈希表,字典之类的数据都可以用LINQ来筛选。

2、实例

A、List<string> names = new List<string> { "ni", "dsad", "Jsdsds", "fsd" };

var nameWithJ = from n1 in names where n1.StartsWith("J") orderby n1 select n1;

//在names集合中取出以[J]开头的所有元素

//n1 in names:表示n1是遍历names集合用的临时变量

//from n1 in names:表示数据源就是names的集合

//where n1.StartsWith("J"):筛选条件是n1当中第一字符为[J]的

//orderby n1:排序方式是以n1中的内容

//select n1:筛选结果返回的字段序列

B、List<Racer> rs = new List<Racer>() {             //创建一个对象集合

new Racer{Wins = 21, Country = "China"},new Racer{Wins=11,Country="China"},

new Racer{Wins=14,Country="USA"},new Racer{Wins=22,Country="China"},

new Racer{Wins=21,Country="China"},new Racer{Wins=35,Country="China"},

new Racer{Wins=44,Country="China"},new Racer{Wins=66,Country="USA"},

new Racer{Wins=44,Country="Japan"}};

var rs1 = from r in rs                        //对rs对象集合为数据源

group r by r.Country into g         //以Country作为group by的分组因素,结果放入对象g中

orderby g.Count() descending, g.Key //根据Count排序,当Count相同的时候根据Key排序

where g.Count() >= 2                //只要累计数量大于等于2的

select new{KeyName=g.Key ,Count=g.Count()};   //返回有两个字段KeyName和Count的对象集合

foreach (var r in rs1)          //遍历查询结果集

{

Console.WriteLine(r.KeyName.ToString());    //显示返回结果集的第一个字段值

Console.WriteLine(r.Count.ToString());      //显示返回结果集的第二个字段值

}

时间: 2024-12-28 06:17:54

webservice+linq的相关文章

最新的VS学习视频网站:ASP.NET, MVC, SQL , LINQ, WebService,等 http://csharp-video-tutorials.blogspot.jp/

最近开发项目经常会碰到一些开发问题,基于Windows开发人员,强烈推荐. http://csharp-video-tutorials.blogspot.jp/

C# 动态生成WebService,无需添加引用

C#项目调用WebService是很常见的现象,但一旦修改链接地址就需要重新更新引用很是麻烦,这里跟大家分享一个通过地址,无需添加引用动态生成Webservice的小方法 方法类: 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.ServiceModel; 6 using System.ServiceModel.Channels

.net实现webservice简单实例分享

原理:WebService是一个SOA(面向服务的编程)的架构,它是不依赖于语言,不依赖于平台,可以实现不同的语言间的相互调用,通过Internet进行基于Http协议的网络应用间的交互.作用:主要用于数据交换.提供服务接口优点:可跨平台.部署简单调用方便.无需额外客户端支持 一.创建一个WebService服务1.创建一个普通的Asp.Net Web应用程序,名称为WebServiceDemo 2.在刚创建的web程序里添加一个WebService服务文件,名称为TestService.asm

vs2012 webservice创建

第一步:打开VS2012,新建空项目,注意选择.NET Framework的版本.这里我选择的是.NET Framework 4 新建好项目后,在项目中添加一个WebService项 打开这个文件,我们可以看到,代码如下 [csharp] view plaincopyprint? using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Service

通过HttpWebRequest调用webService

调用远端接口关键方法如下: public object InsertAuditLog(string loginLog) { //Wsdlxml(loginLog)返回wsdl的xml byte[] bs = Encoding.UTF8.GetBytes(Wsdlxml(loginLog)); HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create("http://10.109.209.90:21010/gather/service

Jquery ajax传递复杂参数给WebService

参考: http://www.cnblogs.com/kingge/archive/2011/08/04/2127642.html http://www.cnblogs.com/micromouse/archive/2010/08/14/1799464.html using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Runtime.Serializati

封装WebService的APM为Async、Await模式利于Asp.Net页面调用

Wcf针对Async.Await指令直接可以返回Task<T>结果,但是老旧的系统中还是会有很多是在用Soap的Webservice.直接在Asp.Net页面调用APM方法确实比较麻烦,其实可以直接用TaskFactory封装APM模式为.Net4.5的async await模式,便于页面调用. 下面上实现代码,不多废话,注意注释: using System; using System.Collections.Generic; using System.Linq; using System.T

asp.net WebService+Ajax调用

default.aspx 代码如下: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head run

WebService的创建,发布与调用

创建WebService vs2015新建项目:ASP.Net 空项目 在项目中添加Web服务如下图: 创建WebHello服务代码,完成加.减.乘.除的运算 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Web; 5 using System.Web.Services; 6 7 namespace WebDemo01 8 { 9 /// <summary> 10