2019独角兽企业重金招聘Python工程师标准>>>

这个一个俄国牛人写的开源工具,为啥说他强悍了,因为他将所有Http协议的底层都实现了一遍,这有啥好处?只要你是写爬虫的,都会遇到一个让人抓狂的问题,就是明明知道自己Http请求头跟浏览器一模一样了,为啥还会获取不到自己想要的数据。这时你如果使用HttpWebReaquest,你只能调试到GetRespone,底层的字节流是调试不到了。所以必须得有个更深入的底层组件,方便自己调试。以下是xNet的开源地址:https://github.com/X-rus/xNet  
快速入门。

using(varrequest = newxNet.HttpRequest()){varhtml = request.Get("http://www.cnblogs.com").ToString();}

首先来一个读取cnblogs首页的案例,HttpWebRequest在上一篇已经举例,我们看看xNet是怎么写的

注意,默认的http头,建议用属性进行设置,譬如KeepAlive,Referer和UserAgent

  扩展的Http头,譬如Upgrade-Insecure-Requests,可以使用AddHeader方法进行设置譬如

当然有些方法使用AddHeader和设置属性值是一样的,例如:

using (var request = new xNet.HttpRequest())
{request.AddHeader("Upgrade-Insecure-Requests", "1");var html=request.Get("http://www.cnblogs.com").ToString();
}

request.AddHeader("User-Agent","Mozilla/5.0 (Windows NT 6.3; WOW64; rv:49.0) Gecko/20100101 Firefox/49.0");

request.UserAgent = "Mozilla/5.0 (Windows NT 6.3; WOW64; rv:49.0) Gecko/20100101 Firefox/49.0";

request.UserAgent = xNet.Http.FirefoxUserAgent();

  当然不是所有值都可以使用AddHeader进行设置,譬如:Content-Type,这是POST时说明POST的数据类型,如果使用AddHeader会报错。如果你不知道那些可以手动设那些是不能的,参考xNet.HttpHeader的枚举值

public enum HttpHeader
{Accept = 0,AcceptCharset = 1,AcceptLanguage = 2,AcceptDatetime = 3,CacheControl = 4,ContentType = 5,Date = 6,Expect = 7,From = 8,IfMatch = 9,IfModifiedSince = 10,IfNoneMatch = 11,IfRange = 12,IfUnmodifiedSince = 13,MaxForwards = 14,Pragma = 15,Range = 16,Referer = 17,Upgrade = 18,UserAgent = 19,Via = 20,Warning = 21,DNT = 22,AccessControlAllowOrigin = 23,AcceptRanges = 24,Age = 25,Allow = 26,ContentEncoding = 27,ContentLanguage = 28,ContentLength = 29,ContentLocation = 30,ContentMD5 = 31,ContentDisposition = 32,ContentRange = 33,ETag = 34,Expires = 35,LastModified = 36,Link = 37,Location = 38,P3P = 39,Refresh = 40,RetryAfter = 41,Server = 42,TransferEncoding = 43,
}

当然他还支持Socks4和Socks5,代理的好处不言而喻了

转载于:https://my.oschina.net/lichaoqiang/blog/881264

俄国牛人写的开源爬虫xNet相关推荐

  1. 牛人写的设计游戏服务器

    转载自 zeeman的博客 - 牛人写的设计游戏服务器 :http://blog.sina.com.cn/s/blog_55d572ca0100uvzt.html 有段时间没有研究技术了,这次正好看到 ...

  2. 下载量高达163万的易语言牛人写的一个超牛的软件(即将删除)

    引自易语言论坛"毁人不倦"贴子(http://bbs.eyuyan.com/dispbbs.asp?boardid=124&id=180180): 在华军上突然发现一个下载 ...

  3. 华为十年(转贴)原华为牛人写的

    华为十年 徐家骏 2007年5月28日 (注:徐是华为数据中心的头,清华硕士,技术超级牛人,一级部门总监,华为副总裁,年收入过千万,数据中心是用火山岩建的深入地下的一个大型建筑.防辐射,可防卫星的电子 ...

  4. 绝对受用的求职经验分享,是天津大学一牛人写的,很

    绝对受用的求职经验分享 感谢天津大学写这篇求职经历的那位研究生. 目录 关于我的系列文章的解释和说明 我的求职历程及经验分享(一):求职历程总结 我的求职历程及经验分享(二):前期准备 我的求职历程及 ...

  5. 【学术人生】牛人写SCI常用经典词和常用句型

    当你初入江湖,迷茫不知道该干什么的时候,不妨去模仿前人是如何进行科研的,并从中归纳出最适合自己的道路.为此,我们推出"学术人生"专栏,介绍科研的方法与经验,为你的科研学习提供帮助, ...

  6. 一位牛人写的关于开关电源的啸叫原因经验,比较实用!

    转自: http://bbs.21dianyuan.com/2521.html ============================================================ ...

  7. 牛人写SCI常用经典词和常用句型

    一.经典替换词1. individuals, characters, folks 替换 people , persons. 2. positive, favorable, rosy, promisin ...

  8. tomcat(一个牛人写的文章,自己看)

    Tomcat源码系列1--Tomcat启动流程1 文章分类:Java编程 最近在看Tomcat的源码,下面用博客记下看源码的一些心得. Tomcat是从org.apache.catalina.star ...

  9. 【转贴】北大一牛人写的爆强失恋诗

    怒 何故 昨日暮 偶遇见她 把纤纤玉手 交那衰人牵住 盈盈笑语左右顾 神采飞扬凌波微步 美眸中一片深情倾注 似前年与我同在湖畔路 也这般附耳交顾低语倾诉 如今见我头也不点形同陌路 我发现自己旧情难忘六 ...

最新文章

  1. 【C++ Primer | 08】课后习题答案
  2. C++学习之路 | PTA乙级—— 1013 数素数 (20分)(精简)
  3. ViewState 与 静态变量的 区别
  4. Linux软件安装的几种方法 (一)—— apt-get
  5. 什么叫做石英表_什么是石英表 石英表是什么意思
  6. python3.8.0安装详细步骤_python3.8.0安装教程_后端开发
  7. JSP和Servlet相同点和不同点?
  8. python3.6网络爬虫_python3.6网络爬虫
  9. 设计模式(6)——抽象工厂模式(Abstract Factory Pattern,创建型)
  10. html5d调用百度语音,易语言调用百度语音平台实现文字转换语音功能的代码
  11. 雷曼兄弟 算法_雷曼如何失去双腿
  12. root 红米note5_红米Note5 root教程_红米Note5卡刷root包来获取root权限
  13. 计算机技术在企业管理中的应用浅论,浅谈计算机技术在现代企业管理中的应用...
  14. 一夜之间ChatGPT火遍全球,程序员的饭碗保不住了吗
  15. 如何适配处理iphoneX底部的横条 - ios
  16. 大治河西枢纽二线船闸总体设计(水利设计资料)
  17. Linux:rpm包常用下载地址
  18. 【write up】2021春秋杯-BabySteg
  19. 【MySQL高性能】MyCat 2.分片策略以及原理分析
  20. 三菱伺服刚性调节方法

热门文章

  1. 学习Javascript闭包(Closure)(转载+理解心得)
  2. Professional ASP.NET 2.0之跨页提交-Cross Page Posting
  3. match VS match_phrase
  4. 在Vue.js中使用Mixin
  5. 安全双标准或成拖垮企网防护的新威胁
  6. Win7提示1970-01-01 000000 is not a valid data怎么办.
  7. 读《世界是数字的》笔记
  8. coherence初识
  9. DotNetBar for Windows Forms 11.8.0.8冰河之刃重打包版
  10. 让getElementsByName适应IE和firefox