<返主目录 ▕▏ C#基础库 WjwLibs: V5.0.5▕▏帮助文档 : 网页抓包 ▕▏ 编译日期: 2024-09-17▕▏ Email: wujwmail@163.com
命名空间: 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)