[System.Net]模拟Web请求编写简易单词查询客户端
demo: 我就不上传了
前言
在实际生活中,网络请求的应用极其常见,比如使用浏览器,程序中我们还要调用webservice。那么浏览器是怎么请求网络资源的呢?不用它可以自己请求不?
答案是可以的。
如果我们可以用自己的程序主动发起网络请求,那么我们可以:模拟提交数据,做一些简单网页游戏的外挂,可以刷一些帖子的访问量,可以抓取网络上的资源……
废话不我说,此文以使用Get方式对有道词典网进行请求为核心,编写了一个简单的单词查询客户端。正则表达式不太懂可以改为字符串基本操作,或者对其自己做一下基本的了解和学习。
【注:致初学都系列,一般以简单有意义的demo为例,介绍某类知识点(此文已以黑体标出)。其中API不懂的可以留言讨论。如有兴趣可以查询MSDN进行深入学习(笔者所期望的)】
效果图:
aaarticlea/png;base64,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" alt="" />
代码:
using System;
using System.Collections.Generic;
using System.IO;
using System.Net;
using System.Text;
using System.Text.RegularExpressions; namespace NetCapture
{
/// <summary>
/// base类。以后我们可能写别的类似请求,通过继承此类,可以省下一些代码。
/// </summary>
public abstract class GetScraperBase
{
//正则表达式的匹配模式
protected abstract string Pattern { get; }
//如何过滤正则表达式匹配的结果
protected abstract Dictionary<string, string> FilterMatch(Match match);
//抓取网页上的内容
public Dictionary<string, string> Scrape(string url, WebProxy proxy = null)
{
var request = WebRequest.Create(url); //创建request
if (proxy != null)
{
request.Proxy = proxy;//可能你在一些环境上不了网,得使用代理服务器
}
var response = request.GetResponse(); //获取response
var stream = response.GetResponseStream();
var responseReader = new StreamReader(stream);
var content = responseReader.ReadToEnd(); //读取response(页面对应的html)
var match = Regex.Match(content, Pattern, RegexOptions.IgnorePatternWhitespace); //筛选内容
return FilterMatch(match);
}
} public class YouDaoScaper : GetScraperBase
{
protected override string Pattern
{
get
{
/* Target result in response:
<div class="trans-container">
<ul>
<li>n. 试验;检验</li>
<li>vt. 试验;测试</li>
<li>vi. 试验;测试</li>
<li>n. (Test)人名;(英)特斯特</li>
</ul>
*
* there are two groups in this pattern, first is '<li>(?<content>.+)</li>[\r\n\s]*'
* it's an unnamed group, it has four capture:
* first is '<li>n. 试验;检验</li>' and so on.
*
* another group is and named group 'content' , it has four capture, in this sampe:
* capture 1 is 'n. 试验;检验' and so on.
*/ return @"<div\sclass=""trans-container"">[\r\n\s]*
<ul>[\r\n\s]*
(<li>(?<content>.+)</li>[\r\n\s]*)*
</ul>";
}
} protected override Dictionary<string, string> FilterMatch(Match match)
{
var dict=new Dictionary<string, string>();
var content = "";
var group=match.Groups["content"];
if(group.Success)
{
foreach (Capture capture in group.Captures)
{
content += (capture.Value + "\n");
}
}
dict["content"]=content;
return dict;
} public string QueryWord(string word)
{
var url= "http://dict.youdao.com/search?q="+word;
var dict = Scrape(url);
return dict["content"];
}
}
}
[System.Net]模拟Web请求编写简易单词查询客户端的更多相关文章
- 经验总结20--C#模拟WEB请求
非常多语言能够使用代码进行WEB请求,获取到须要的数据. 方便调用别人的接口,自己进行处理. HttpWebRequest request = WebRequest.Create(url) as Ht ...
- 模拟HTTP请求:Request Maker
摘要 : Request Maker是一款可以模拟HTTP请求的谷歌浏览器插件. Request Maker的开发背景 现在由于restful式的web api的兴起,越来越多的开发者习惯使用URL来 ...
- C#模拟httpwebrequest请求_向服务器模拟cookie发送
使用C#代码模拟web请求,是一种常用的方法,以前没专门整理过,这里暂时贴上自己整理的完整代码,以后再做梳理: public class MyRequest { #region 辅助方法 public ...
- js_html_input中autocomplete="off"在chrom中失效的解决办法 使用JS模拟锚点跳转 js如何获取url参数 C#模拟httpwebrequest请求_向服务器模拟cookie发送 实习期学到的技术(一) LinqPad的变量比较功能 ASP.NET EF 使用LinqPad 快速学习Linq
js_html_input中autocomplete="off"在chrom中失效的解决办法 分享网上的2种办法: 1-可以在不需要默认填写的input框中设置 autocompl ...
- 使用 C# 编写简易 ASP.NET Web 服务器 ---- 模拟IIS的处理过程
如果你想获得更好的阅读体验,可以前往我在 github 上的博客进行阅读,http://lcomplete.github.io/blog/2013/07/16/use-csharp-write-asp ...
- C# 编写简易 ASP.NET Web 服务器
C# 编写简易 ASP.NET Web 服务器 你是否有过这样的需求——想运行 ASP.NET 程序,又不想安装 IIS 或者 Visual Studio?我想如果你经常编写 ASP.NET 程序的话 ...
- 使用 C# 编写简易 ASP.NET Web 服务器
原文 http://www.cnblogs.com/lcomplete/p/use-csharp-write-aspnet-web-server.html 如果你想获得更好的阅读体验,可以前往我在 g ...
- 第三百二十七节,web爬虫讲解2—urllib库爬虫—基础使用—超时设置—自动模拟http请求
第三百二十七节,web爬虫讲解2—urllib库爬虫 利用python系统自带的urllib库写简单爬虫 urlopen()获取一个URL的html源码read()读出html源码内容decode(& ...
- 模拟界面请求到web服务器
客户端 package com.lsw.client; import java.io.*; import java.net.*; import java.util.*; public class HT ...
随机推荐
- jQuery图片提示和文字提示
图片提示: 效果如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http:/ ...
- Table of Contents - 设计模式
设计原则 OCP - 开闭原则 SRP - 单一职责原则 DIP - 依赖倒置原则 ISP - 接口隔离原则 LSP - 里氏替换原则 LoD - 迪米特法则 创建型模式 工厂方法模式 抽象工厂模式 ...
- WEB系统架构
客户端方向:框架+控件+模板+元数据辅助:懒加载+合并请求+异步任务+推送+缓存技术:reactjs,requirejs,jquery,angularjs,bootstrap,ant.design,f ...
- Android之开源项目工具库篇
本文转自:http://www.trinea.cn/android/android-open-source-projects-dev-lib/ 本文中你可以找到那些精美App中各种有特性的View,如 ...
- 放弃SCOPE_Identity,使用OUTPUT代替
最近项目中使用了SCOPE_IDENTITY()来获取新增数据的自动递增ID号. 在运行过程中会不时的发生无法通过SCOPE_IDENTITY()来获取ID号的情况. 尝试着测试又发现不了问题. 今天 ...
- PropertyGrid排序
解决PropertyGrid对自定义属性排序的问题. 参考了:http://www.cnblogs.com/greatverve/archive/2012/02/08/propergrid-order ...
- 解决IE6下固定定位问题 使用position:fixed
IE6浏览器有太多的bug让制作网页的人头疼.这篇文章介绍的是介绍的是如何解决IE6不支持position:fixed;属性的办法. 如果我们需要做某个元素始终位于浏览器的底部,不会因为浏览器窗口的缩 ...
- 单机版简单弹幕墙demo (jqery+bootstrap)
最近在看fcc ,上面有一个弹幕墙设计的题目,要求从后端获取数据,显示出来.百度,谷歌都没找到相关好的例子作为借鉴,索性按照自己的思路写了一个简单的demo .在做demo的过程中遇到最大的问题就 ...
- 【转】c# yield用法
注意事项:1.yield语句只能出现在迭代块中:2.yield return 语句不能放在 try-catch 块中的任何位置. 该语句可放在后跟 finally 块的 try 块中3.yield b ...
- ★Linux磁盘配额的使用 ★——牛刀小试
磁盘配额的作用:限制普通用户使用磁盘的空间和创建文件的个数,不至于因为个别人的浪费而影响所有人的使用 需要用户程序quota软件包 #rpm -qa | grep quota 查看quota软件包安 ...