|
发表于 2024-9-23 22:01:21
|
显示全部楼层
广东省广州市
自己用的网络下载,自己改下缓冲区的大小,达到限速的目地!至于缓冲区大小达到多少对应的限速是多少,我也不知道,具体的也没有对比过
|
网页_下载文件2 | 逻辑型 | | |
网址 | 文本型 | | | | 局_保存路径 | 文本型 | | | | 下载回调函数 | 子程序指针 | | | | 任务ID | 整数型 | | | | 访问方式 | 整数型 | | | | 提交信息 | 文本型 | | | | 提交Cookies | 文本型 | | | | 返回Cookies | 文本型 | | | | 附加协议头 | 文本型 | | | | 返回协议头 | 文本型 | | | | 禁止重定向 | 逻辑型 | | | | 字节集提交 | 字节集 | | | | 代理地址 | 文本型 | | | | 缓冲区大小 | 整数型 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 | 局_Internet句柄 | 整数型 | | | 局_Internet连接句柄 | 整数型 | | | 局_HTTP请求句柄 | 整数型 | | | 局_计次 | 整数型 | | | 局_字节集 | 字节集 | | | 局_访问方式 | 文本型 | | | 局_User_Agent | 文本型 | | | 局_返回协议头 | 文本型 | | 0 | 局_页面内容 | 字节集 | | | 局_请求标记 | 整数型 | | | 局_重定向地址 | 文本型 | | | 局_HTTPS | 逻辑型 | | | z_页面内容 | 字节集 | | | 局部_总大小 | 整数型 | | | 局_当前大小 | 整数型 | | | 局_进度 | 双精度小数型 | | | FileHandle | 整数型 | | | 参数 | 整数型 | | 4 | 文件号 | 整数型 | | | 局_当次内容 | 字节集 | | |
局_访问方式 = 选择 (访问方式 < 0 或 访问方式 > 3, “GET”, 多项选择 (访问方式 + 1, “GET”, “POST”, “HEAD”, “PUT”, “DELETE”, “OPTIONS”, “TRACE”, “CONNECT”)) 如果真 (访问方式 < 0 或 访问方式 > 2 )访问方式 = 0 如果真 (到小写 (取文本左边 (网址, 8 )) = “https://”)局_HTTPS = 真 判断 (寻找文本 (附加协议头, “User-Agent:”, , 真) ≠ -1 )局_User_Agent = 删首尾空 (文本_取出中间文本 (附加协议头 + #换行符, “User-Agent:”, #换行符 )) 如果真 (局_User_Agent = “”)局_User_Agent = 内部_协议头取值 (附加协议头 )局_User_Agent = “Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36”判断 (代理地址 = “”)局_Internet句柄 = InternetOpenA (局_User_Agent, 1, 字符 (0 ), 字符 (0 ), 0 )判断 (局_HTTPS ) 局_Internet句柄 = InternetOpenA (局_User_Agent, 3, 代理地址, “”, 0 )局_Internet句柄 = InternetOpenA (局_User_Agent, 3, “http=” + 代理地址, “”, 0 )如果真 (局_Internet句柄 = 0 )InternetCloseHandle (局_Internet句柄 )返回 (假)局_Internet连接句柄 = InternetConnectA (局_Internet句柄, 网页_取域名2 (网址), 网页_取端口2 (网址), 字符 (0), 字符 (0), 3, 0, 0)如果真 (局_Internet连接句柄 = 0 )InternetCloseHandle (局_Internet连接句柄 )InternetCloseHandle (局_Internet句柄 )返回 (假)局_请求标记 = 位或 ( #INTERNET_FLAG_RELOAD, #INTERNET_COOKIE_THIRD_PARTY )如果真 (取反 (是否为空 (提交Cookies )) )局_请求标记 = 位或 (局_请求标记, #INTERNET_FLAG_NO_COOKIES )如果真 (禁止重定向 )局_请求标记 = 位或 (局_请求标记, #INTERNET_FLAG_NO_AUTO_REDIRECT )判断 (局_HTTPS )局_请求标记 = 位或 (局_请求标记, #INTERNET_FLAG_SECURE )局_请求标记 = 位或 (局_请求标记, #INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTPS )局_HTTP请求句柄 = HttpOpenRequestA (局_Internet连接句柄, 局_访问方式, 网页_取页面地址 (网址), “HTTP/1.1”, 字符 (0), 字符 (0), 局_请求标记, 0)如果真 (局_HTTP请求句柄 = 0 )InternetCloseHandle (局_HTTP请求句柄 )InternetCloseHandle (局_Internet连接句柄 )InternetCloseHandle (局_Internet句柄 )返回 (假)判断 (附加协议头 = “”)附加协议头 = “Accept: */*”如果真 (寻找文本 (附加协议头, “Accept:”, , 假) = -1 )附加协议头 = 附加协议头 + #换行符 + “Accept: */*”如果真 (寻找文本 (附加协议头, “Referer:”, , 假) = -1 )附加协议头 = 附加协议头 + #换行符 + “Referer: ” + 网址 如果真 (寻找文本 (附加协议头, “Accept-Language:”, , 假) = -1 )附加协议头 = 附加协议头 + #换行符 + “Accept-Language: zh-cn”如果真 (寻找文本 (附加协议头, “Content-Type:”, , 假) = -1 )附加协议头 = 附加协议头 + #换行符 + “Content-Type: application/x-www-form-urlencoded”如果真 (提交Cookies ≠ “”)判断 (寻找文本 (提交Cookies, “Cookie:”, , 假) = -1 )附加协议头 = 附加协议头 + #换行符 + “Cookie: ” + 提交Cookies 附加协议头 = 附加协议头 + #换行符 + 提交Cookies 判断 (访问方式 = 0 )HttpSendRequestA (局_HTTP请求句柄, 附加协议头, 取文本长度 (附加协议头 ), “”, 0 )如果真 (字节集提交 = { })字节集提交 = 到字节集 (提交信息 )HttpSendRequestA_字节集 (局_HTTP请求句柄, 附加协议头, 取文本长度 (附加协议头), 字节集提交, 取字节集长度 (字节集提交))如果真 (是否为空 (缓冲区大小 )) 缓冲区大小 = 10240 局_计次 = 0局_字节集 = 取空白字节集 (缓冲区大小 )如果真 (文件_是否存在 (局_保存路径 ) = 假)文件_创建 (局_保存路径, 0 )文件号 = 打开文件 (局_保存路径, #重写, )移到文件尾 (文件号 )局_当前大小 = 0 如果真 (局部_总大小 = 0 )局部_总大小 = 到整数 (网页_取网络文件尺寸 (网址 )) 循环判断首 ()InternetReadFile (局_HTTP请求句柄, 局_字节集, 缓冲区大小, 局_计次 )如果真 (局_计次 = 0 )跳出循环 ()局_当次内容 = 取字节集左边 (局_字节集, 局_计次)局_页面内容 = 局_页面内容 + 局_当次内容 写出字节集 (文件号, 局_当次内容 ) 局_当前大小 = 局_当前大小 + 局_计次 局_进度 = 局_当前大小 ÷ 局部_总大小 × 100 如果真 (是否为空 (下载回调函数 ) = 假 且 到整数 (下载回调函数 ) ≠ 0 )参数 [1 ] = 局_当前大小 参数 [2 ] = 局_进度 参数 [3 ] = 局部_总大小 参数 [4 ] = 任务ID CallWindowProcA_Asm ( #动态调用代码, 到整数 (下载回调函数 ), 参数, 4, 假)循环判断尾 (局_计次 ≠ 0 )返回协议头 = 取空白文本 (5000 )HttpQueryInfoA (局_HTTP请求句柄, 22, 返回协议头, 5000, 0 )返回协议头 = 子文本替换 (返回协议头, “Set-Cookie”, “Set-Cookie”, , , 假)InternetCloseHandle (局_HTTP请求句柄 )InternetCloseHandle (局_Internet连接句柄 )InternetCloseHandle (局_Internet句柄 )关闭文件 (文件号 )局_返回协议头 = 分割文本 (返回协议头, #换行符, )返回Cookies = “”计次循环首 (取数组成员数 (局_返回协议头 ), 局_计次 )如果真 (文本_取左边 (局_返回协议头 [局_计次 ], “: ”) = “Set-Cookie”)判断 (寻找文本 (局_返回协议头 [局_计次 ], “;”, , 假) ≠ -1 )返回Cookies = 返回Cookies + 删首尾空 (文本_取出中间文本 (局_返回协议头 [局_计次 ], “Set-Cookie:”, “;”)) + “; ”返回Cookies = 返回Cookies + 删首尾空 (子文本替换 (局_返回协议头 [局_计次 ], “Set-Cookie:”, , , , 假)) + “; ”计次循环尾 ()返回Cookies = 取文本左边 (返回Cookies, 取文本长度 (返回Cookies ) - 2 )如果真 (取反 (是否为空 (提交Cookies )) )返回Cookies = 网页_Cookie合并更新 (提交Cookies, 返回Cookies ) 如果 (z_页面内容 = { })写到文件 (局_保存路径, 局_页面内容 )写到文件 (局_保存路径, z_页面内容 )返回 (真)位置 = 寻找文本 (协议头, “:”, , 假)如果真 (位置 ≠ -1 )结果 = 取文本右边 (协议头, 取文本长度 (协议头 ) - 位置 )返回 (删首尾空 (结果))|
网页_取域名2 | 文本型 | | |
网址 | 文本型 | | | | 去除二级域名 | 逻辑型 | | | | 不过滤端口 | 逻辑型 | | | | 后缀点数量 | 整数型 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 | 域名 | 文本型 | | | 位置 | 整数型 | | | 二级 | 文本型 | | 0 | 域名长度 | 整数型 | | | 前点开始 | 整数型 | | | 前点结束 | 整数型 | | | 后点开始 | 整数型 | | |
域名 = 到小写 (网址 )判断 (是否为空 (后缀点数量 )) 如果真 (取文本右边 (域名, 1 ) ≠ “/”)域名 = 域名 + “/”判断 (取文本左边 (域名, 8 ) = “https://”)域名 = 文本_取出中间文本2 (域名, “https://”, “/”)如果真 (寻找文本 (域名, “http://”, , 假) = -1 )域名 = “http://” + 域名 域名 = 文本_取出中间文本2 (域名, “http://”, “/”)如果真 (去除二级域名 )二级 = 分割文本 (域名, “.”, )位置 = 取数组成员数 (二级 )如果真 (位置 > 1 )域名 = 二级
|
|