C#爬虫入门之简单POST请求-有道翻译
2020/3/5 16:01:35
本文主要是介绍C#爬虫入门之简单POST请求-有道翻译,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
简要说明
HTTP请求头(Headers)
user-agent:
伪装浏览器,应对网站反爬虫措施
Referer:
告诉服务器该网页是从哪个页面链接过来的
Content-Type:
告诉网站发送请求的媒体类型
POST请求字符串格式:
"{0}={1}&{2}={3}&{4}={5}..."
eg:"query=他改变了&i=1926&t=蛤"
构建请求字符串
/// <summary> /// 把字典转化为请求字符串 /// </summary> /// <param name="dict">参数字典</param> /// <returns>返回请求字符串</returns> public static string GetPostArgs(Dictionary<string,string> dict) { StringBuilder sb = new StringBuilder(); bool first = true; foreach (var item in dict) { if(first) { sb.Append(item.Key); sb.Append("="); sb.Append(item.Value); first = false; } else { sb.Append("&"); sb.Append(item.Key); sb.Append("="); sb.Append(item.Value); } } return sb.ToString(); }
创建POST请求发送表单并接受返回信息
/// <summary> /// 发送Post请求 /// </summary> /// <param name="url">连接</param> /// <param name="headers">HTTP头</param> /// <param name="str">请求字符串</param> /// <returns>返回结果</returns> public static string PostInf(string url, WebHeaderCollection headers, string str) { //创建HTTP请求 var re = WebRequest.Create(url) as HttpWebRequest; //设置请求头 re.Headers = headers; //设置访问类型为POST re.Method = "POST"; //写入请求信息 using(StreamWriter sw=new StreamWriter(re.GetRequestStream())) { sw.WriteLine(str); } //获取相应内容 var ans = re.GetResponse(); using (var st = new StreamReader(ans.GetResponseStream())) { return st.ReadToEnd(); } }
Main方法
var url = "http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule"; var headers = new WebHeaderCollection(); headers["Content-Type"] ="application/x-www-form-urlencoded"; headers["user-agent"]="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"; headers["Referer"]="https://www.lagou.com/jobs/list_unity3d?labelWords=&fromSearch=true&suginput="; var dict = new Dictionary<string, string>() { {"i",ReadLine() }, {"from","AUTO" }, {"to","AUTO" }, {"smartresult","dict" }, {"client", "fanyideskweb" }, {"salt","15808837717114" }, {"sign","22a6ee9a07d4821f04e50bd029f73de0" }, {"ts" ,"1580883771711" }, {"bv","38c3ccbde2d50a86f0f9606d2be5a3d8"}, {"doctype","json" }, {"version","2.1"}, {"keyfrom","fanyi.web"}, {"action","FY_BY_REALTlME" } }; WriteLine(PostInf(url,headers, GetPostArgs(dict)));
这篇关于C#爬虫入门之简单POST请求-有道翻译的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2022-03-01沐雪多租宝商城源码从.NetCore3.1升级到.Net6的步骤
- 2024-05-08首个适配Visual Studio平台的国产智能编程助手CodeGeeX正式上线!C#程序员必备效率神器!
- 2024-03-30C#设计模式之十六迭代器模式(Iterator Pattern)【行为型】
- 2024-03-29c# datetime tryparse
- 2024-02-21list find index c#
- 2024-01-24convert toint32 c#
- 2024-01-24Advanced .Net Debugging 1:你必须知道的调试工具
- 2024-01-24.NET集成IdGenerator生成分布式全局唯一ID
- 2024-01-23用CI/CD工具Vela部署Elasticsearch + C# 如何使用
- 2024-01-23.NET开源的简单、快速、强大的前后端分离后台权限管理系统