<返主目录 ▕▏C#基础库 WjwLibs: V5.0.5▕▏帮助文档 : 网页抓包 ▕▏ 编译日期: 2024-01-24▕▏ Email: wujwmail@163.com

〖网页抓包〗 /wjw_cs.net/WjwLibs/wjw/WjwWget.cs


类-1.名称: WjwWget ▕→ 网页抓取类

命名空间: WjwLibs
所属类: WjwLibs.WjwWget
说明: 
    网页抓取类
      例: 抓包http://www.163.com,这个网站为GBK编码本程序将自动深测解析
      WjwPhp.print("抓包http://www.163.com");
      var wget=new WjwWget("http://www.163.com");
      wget.DEBUG=true; //加入这句将输出头消息,并且在日志文件中开始记录头消息以便分析报文结构
      var txt=wget.GetPage();
      WjwPhp.print(txt); //可将这行注释掉只输出头消息
定义: 
    public class WjwWget

属性名称: IsGbk ▕→ 强制解析网页为GBK编码(缺省utf-8,可不设置让系统自动探测解析)

 命名空间: WjwLibs
 所属类: WjwLibs.WjwWget
 说明: 
     强制解析网页为GBK编码(缺省utf-8,可不设置让系统自动探测解析)
 定义: 
     public bool IsGbk = false;

属性名称: DEBUG ▕→ 是否调试运行

 命名空间: WjwLibs
 所属类: WjwLibs.WjwWget
 说明: 
     是否调试运行
 定义: 
     public bool DEBUG = false;

属性名称: IsDataEncode ▕→ 提交POST数据编码方式(data/uri)

 命名空间: WjwLibs
 所属类: WjwLibs.WjwWget
 说明: 
     提交POST数据编码方式(data/uri)
 定义: 
     public bool IsDataEncode = true;

属性名称: WjwToHead ▕→ 请求头部

 命名空间: WjwLibs
 所属类: WjwLibs.WjwWget
 说明: 
     请求头部
 定义: 
     public WjwKvs WjwToHead;

属性名称: WjwRetHead ▕→ 返回响应头部

 命名空间: WjwLibs
 所属类: WjwLibs.WjwWget
 说明: 
     返回响应头部
 定义: 
     public WjwKvs WjwRetHead;

属性名称: HttpBase ▕→ 主页HTTP基地址

 命名空间: WjwLibs
 所属类: WjwLibs.WjwWget
 说明: 
     主页HTTP基地址
 定义: 
     public string HttpBase

属性名称: WinPath ▕→ windows端数据目录

 命名空间: WjwLibs
 所属类: WjwLibs.WjwWget
 说明: 
     windows端数据目录
 定义: 
     public string WinPath = @"D:\wjwlibs_cs\wjwwget";

属性名称: UnixPath ▕→ Unix/Linux端数据目录

 命名空间: WjwLibs
 所属类: WjwLibs.WjwWget
 说明: 
     Unix/Linux端数据目录
 定义: 
     public string UnixPath = @"/var/wjwlibs_cs/wjwwget";

属性名称: CacertFile ▕→ 根证书文件(存放在数据目录下)

 命名空间: WjwLibs
 所属类: WjwLibs.WjwWget
 说明: 
     根证书文件(存放在数据目录下)
 定义: 
     public string CacertFile

属性名称: CookFile ▕→ 前端保存cookit的文件名

 命名空间: WjwLibs
 所属类: WjwLibs.WjwWget
 说明: 
     前端保存cookit的文件名
 定义: 
     public string CookFile = "";

属性名称: OutTime ▕→ 每次获取网页等待时间(毫秒),缺省30秒

 命名空间: WjwLibs
 所属类: WjwLibs.WjwWget
 说明: 
     每次获取网页等待时间(毫秒),缺省30秒
 定义: 
     public int OutTime = 30000;

属性名称: CookieJarStr ▕→ 当前cookie文本(csvKV键值对)

 命名空间: WjwLibs
 所属类: WjwLibs.WjwWget
 说明: 
     当前cookie文本(csvKV键值对)
 定义: 
     public string CookieJarStr = "";

方法名称: WjwWget ▕→ 抓取构造函数

 命名空间: WjwLibs
 所属类: WjwLibs.WjwWget
 说明: 
     抓取构造函数
 参数: 
     urlBase : 主页URL地址
     ckFile : 保存cookies的文件,或为初始cookie的WjwKvs字串
 定义: 
     public WjwWget(string urlBase, string ckFile = "")

方法名称: PackHWQ ▕→ 封装一个HttpWeb请求对象

 命名空间: WjwLibs
 所属类: WjwLibs.WjwWget
 说明: 
     封装一个HttpWeb请求对象
 参数: 
     subUrl : 当前以"/"开头的网页子URL地址(或全地址)
     PostFields : POST数据: 自动解析以下的参数形式
         csvKV字串(项分隔为逗号键值分割符[:=])或字典: POST请求提交
         null: 为GET请求提交
         "": 为POST空请求提交
         xml串: XML(POST)请求提交
         json串: JSON(POST)请求提交
     headKvs : 附加头键值对: csvKv字串或字典
 返回: 
     请求对象
 定义: 
     public HttpWebRequest PackHWQ(string subUrl = "", IEnumerable PostFields = null, IEnumerable headKvs = null)

方法名称: GetPage ▕→ 获得网页文档内容(主要方法)

 命名空间: WjwLibs
 所属类: WjwLibs.WjwWget
 说明: 
     获得网页文档内容(主要方法)
 参数: 
     subUrl : 当前以"/"开头的网页子URL地址(或全地址)
     PostFields : POST数据: 自动解析以下的参数形式
         csvKV字串(项分隔为逗号键值分割符[:=])或字典: POST请求提交
         null: 为GET请求提交
         "": 为POST空请求提交
         xml串: XML(POST)请求提交
         json串: JSON(POST)请求提交
     headKvs : 附加头键值对: csvKv字串或字典
     userCall : 用户自定义的请求回调以取得下一步的响应处理,替代本类例行的响应处理
 返回: 
     网页内容
 定义: 
     public string GetPage(string subUrl = "", IEnumerable PostFields = null, IEnumerable headKvs = null, Func<HttpWebRequest, string> userCall = null)

方法名称: GetJson ▕→ 获得网页文档内容(用于加密的JSON报文)

 命名空间: WjwLibs
 所属类: WjwLibs.WjwWget
 说明: 
     获得网页文档内容(用于加密的JSON报文)
 参数: 
     subUrl : 当前以"/"开头的网页子URL地址(或全地址)
     PostFields : json串或加密json串
     headKvs : 附加头键值对: csvKv字串或字典
     userCall : 用户自定义的请求回调以取得下一步的响应处理,替代本类例行的响应处理
 返回: 
     网页内容
 定义: 
     public string GetJson(string subUrl = "", string PostJson = "", IEnumerable headKvs = null, Func<HttpWebRequest, string> userCall = null)

方法名称: DownloadFile ▕→ 下载二进制文件并保存,返回服务器传回的文件名

 命名空间: WjwLibs
 所属类: WjwLibs.WjwWget
 说明: 
     下载二进制文件并保存,返回服务器传回的文件名
 参数: 
     saveFile : 保存文件名
     subUrl : 当前以"/"开头的网页子URL地址(或全地址)
     PostFields : POST数据: 自动解析以下的参数形式
         csvKV字串(项分隔为逗号键值分割符[:=])或字典: POST请求提交
         null: 为GET请求提交
         "": 为POST空请求提交
         xml串: XML(POST)请求提交
         json串: JSON(POST)请求提交
     headKvs : 附加头键值对: csvKv字串或字典
 定义: 
     public string DownloadFile(string saveFile, string subUrl = "", IEnumerable PostFields = null, IEnumerable headKvs = null)

方法名称: DownloadBuff ▕→ 下载一个二进制文件至缓存

 命名空间: WjwLibs
 所属类: WjwLibs.WjwWget
 说明: 
     下载一个二进制文件至缓存
 参数: 
     subUrl : 当前以"/"开头的网页子URL地址(或全地址)
     PostFields : POST数据: 自动解析以下的参数形式
         csvKV字串(项分隔为逗号键值分割符[:=])或字典: POST请求提交
         null: 为GET请求提交
         "": 为POST空请求提交
         xml串: XML(POST)请求提交
         json串: JSON(POST)请求提交
     headKvs : 附加头键值对: csvKv字串或字典
 返回: 
     缓存
 定义: 
     public byte[] DownloadBuff(string subUrl = "", IEnumerable PostFields = null, IEnumerable headKvs = null)

方法名称: UploadBuff ▕→ 缓存上传

 命名空间: WjwLibs
 所属类: WjwLibs.WjwWget
 说明: 
     缓存上传
 参数: 
     data : 缓存数据
     subUrl : 当前以"/"开头的接收程序的子URL地址(或全地址)
     PostFields : csvKV字串(项分隔为逗号键值分割符[:=])或字典
     headKvs : 附加头键值对: csvKv字串或字典
     fileKey : 传给服务器的name的属性值(缺省:Filedata)
     clientFile : 客户机的文件原名(如果有,缺省:clientFile)
 返回: 
     服务器回应的文本串
 定义: 
     public string UploadBuff(byte[] data, string subUrl = "", IEnumerable PostFields = null, IEnumerable headKvs = null, string fileKey = null, string clientFile = null)

方法名称: UploadFile ▕→ 二进制文件上传

 命名空间: WjwLibs
 所属类: WjwLibs.WjwWget
 说明: 
     二进制文件上传
 参数: 
     fileName : 待上传的本地文件名
         pathFile为上传的文本时: 传给服务器的filename的属性内容自动为clientFile
     subUrl : 当前以"/"开头的接收程序的子URL地址(或全地址)
     PostFields : csvKV字串(项分隔为逗号键值分割符[:=])或字典
     headKvs : 附加头键值对: csvKv字串或字典
     fileKey : 传给服务器的name的属性值(缺省:Filedata)
 返回: 
     服务器回应的文本串
 定义: 
     public string UploadFile(string fileName, string subUrl = "", IEnumerable PostFields = null, IEnumerable headKvs = null, string fileKey = null)

方法名称: UploadText ▕→ 文本及文本文件上传

 命名空间: WjwLibs
 所属类: WjwLibs.WjwWget
 说明: 
     文本及文本文件上传
 参数: 
     pathFile : 待上传的本地文件名或待上传的文本
         pathFile为上传的文本时: 传给服务器的filename的属性内容自动为clientFile
     subUrl : 当前以"/"开头的接收程序的子URL地址(或全地址)
     PostFields : csvKV字串(项分隔为逗号键值分割符[:=])或字典
     headKvs : 附加头键值对: csvKv字串或字典
     fileKey : 传给服务器的name的属性值(缺省:Filedata)
 返回: 
     服务器回应的文本串
 定义: 
     public string UploadText(string pathFile, string subUrl = "", IEnumerable PostFields = null, IEnumerable headKvs = null, string fileKey = null)

方法名称: PrintHeader ▕→ 打印头部(调试运行时:DEBUG=true)

 命名空间: WjwLibs
 所属类: WjwLibs.WjwWget
 说明: 
     打印头部(调试运行时:DEBUG=true)
 参数: 
     headerCollection : 头对象集合
     title : 标题
 定义: 
     public void PrintHeader(WebHeaderCollection headerCollection, string title)

方法名称: PutCookie ▕→ 保存当前cookie至文件

 命名空间: WjwLibs
 所属类: WjwLibs.WjwWget
 说明: 
     保存当前cookie至文件
 参数: 
     request : 请求对象
     file : 保存到文件
 返回: 
     csvKv串
 定义: 
     public string PutCookie(HttpWebRequest request, string file = null)

方法名称: GetCookie ▕→ 取cookie文件的cookie变量至请求

 命名空间: WjwLibs
 所属类: WjwLibs.WjwWget
 说明: 
     取cookie文件的cookie变量至请求
 参数: 
     request : 请求对象
     file : cookie文件
 返回: 
     csvKv字串(项分隔为逗号键值分割符[=])
 定义: 
     public string GetCookie(HttpWebRequest request, string file = null)

方法名称: ParsePostStr ▕→ 解析多格式的post参数串

 命名空间: WjwLibs
 所属类: WjwLibs.WjwWget
 说明: 
     解析多格式的post参数串
 参数: 
     request : 请求对象
     PostFields : post参数(字典,csvKv字串(项分隔为逗号键值分割符[=]))
 返回: 
     POST查询字
 定义: 
     public string ParsePostStr(HttpWebRequest request, IEnumerable PostFields)

方法名称: url_fds_encode ▕→ 加密值部份,同php::rawurlencode 2023-02-08

 命名空间: WjwLibs
 所属类: WjwLibs.WjwWget
 说明: 
     加密值部份,同php::rawurlencode 2023-02-08
 参数: 
     PostFields : >url查询串(键=值&键=值&...)
     enBase64 : 为真时仅加密值部份,为false时忽略base64为值的字串
 返回: 
 定义: 
     public static string url_fds_encode(string PostFields, bool enBase64 = true)

方法名称: url_encode ▕→ 加密查询串,同php::rawurlencode 2023-02-08

 命名空间: WjwLibs
 所属类: WjwLibs.WjwWget
 说明: 
     加密查询串,同php::rawurlencode 2023-02-08
 参数: 
     postData : url查询串(键=值&键=值&...)
     IsOnlyValueDataEncode : 为真时仅加密值部份,同php::rawurlencode
 返回: 
 定义: 
     public static string url_encode(string postData, bool IsOnlyValueDataEncode=true)

方法名称: GetLogFile ▕→ 获得系统日志文件

 命名空间: WjwLibs
 所属类: WjwLibs.WjwWget
 说明: 
     获得系统日志文件
 参数: 
     isError : 是否是错误日志
 返回: 
     日志文件
 定义: 
     public string GetLogFile(bool isError = false)

方法名称: ToLog ▕→ 输出运行日志

 命名空间: WjwLibs
 所属类: WjwLibs.WjwWget
 说明: 
     输出运行日志
 参数: 
     mess : 消息
 定义: 
     public void ToLog(string mess)

方法名称: ToErr ▕→ 输出错误日志

 命名空间: WjwLibs
 所属类: WjwLibs.WjwWget
 说明: 
     输出错误日志
 参数: 
     mess : 消息
     isError : 是错误还是警告
 定义: 
     public void ToErr(string mess, bool isError = true)

方法名称: GetTabData ▕→ 提取网页表中的数据,,如有多个子表则应分解成仅一个子表

 命名空间: WjwLibs
 所属类: WjwLibs.WjwWget
 说明: 
     提取网页表中的数据,,如有多个子表则应分解成仅一个子表
 参数: 
     str : 一个子表文本
     colCount : 指定要提取至少要达到的列数
 返回: 
 定义: 
     public static string[][] GetTabData(string str, int colCount = -1)

方法名称: PhpRouterXmlBar ▕→ 打包XML请求(PhpRouter)

 命名空间: WjwLibs
 所属类: WjwLibs.WjwWget
 说明: 
     打包XML请求(PhpRouter)
 参数: 
     call : 
     arg : 
     token : 
     refrm : 
 返回: 
 定义: 
     public static WjwE4x PhpRouterXmlBar(string call, string[] arg = null, string token = "", string refrm = "xml")

方法名称: PhpRouterPostBar ▕→ 打包POST请求(PhpRouter)

 命名空间: WjwLibs
 所属类: WjwLibs.WjwWget
 说明: 
     打包POST请求(PhpRouter)
 参数: 
     call : 
     arg : 
     token : 
     refrm : 
 返回: 
 定义: 
     public static WjwKvs PhpRouterPostBar(string call, string[] arg = null, string token = "", string refrm = "xml")

方法名称: displayerFile ▕→ 显示一个远程文件(或本地文件)2023

 命名空间: WjwLibs
 所属类: WjwLibs.WjwWget
 说明: 
     显示一个远程文件(或本地文件)2023
 参数: 
     url : 文件地址
     poststr : 查询字串
     save_filename : 保存副本文件名
 返回: 
     为null失败
 定义: 
     public static string displayerFile(string url, string poststr = null, string save_filename=null)

方法名称: GetPageAsync ▕→ 异步抓取

 命名空间: WjwLibs
 所属类: WjwLibs.WjwWget
 说明: 
     异步抓取
 参数: 
     subUrl : 
     PostFields : 
     headKvs : 
     userCall : 
 返回: 
 定义: 
     public async Task<string> GetPageAsync(string subUrl = "", IEnumerable PostFields = null, IEnumerable headKvs = null, Func<HttpWebRequest, string> userCall = null)