精易论坛

标题: 网页_访问x 解决可能出现访问空或不解码问题 [打印本页]

作者: LEOONL    时间: 2024-7-15 07:54
标题: 网页_访问x 解决可能出现访问空或不解码问题
用精易模块的网页_访问S功能 可能出现访问空或不解码问题,分享一下好用的网页访问,放入精易模块源码编译后使用
  
子程序名返回值类型公开备 注
网页_访问x文本型 使用WinInet的API方式访问网页
参数名类 型参考可空数组备 注
网址文本型
访问方式整数型0=GET 1=POST 2=HEAD 3=PUT 4=OPTIONS 5=DELETE 6=TRACE 7=CONNECT 8=PATCH
提交信息文本型
提交cookies文本型
返回cookies文本型
附加协议头文本型一行一个请用换行符隔开
返回协议头文本型返回的协议头
禁止重定向逻辑型默认不禁止网页重定向
字节集提交字节集提交字节集数据
代理地址文本型代理地址,格式为 8.8.8.8:88
变量名类 型静态数组备 注
局_Internet句柄整数型 
局_Internet连接句柄整数型 
局_HTTP请求句柄整数型 
局_计次整数型 
局_字节集字节集 
局_访问方式文本型 
局_User_Agent文本型 
局_返回协议头文本型0
局_页面内容字节集 
局_请求标记整数型 
局_HTTPS逻辑型 
n整数型 
局_网页内容文本型 
局_访问方式 = 多项选择 (访问方式 + 1, “GET”, “POST”, “HEAD”, “PUT”, “OPTIONS”, “DELETE”, “TRACE”, “CONNECT”, “PATCH”)
如果真 (到小写 (取文本左边 (网址, 8)) = “https://”)
局_HTTPS = 真
如果 (代理地址 = “”)
局_Internet句柄 = InternetOpenA (局_User_Agent, 1, 字符 (0), 字符 (0), 0)
如果 (局_HTTPS)
局_Internet句柄 = InternetOpenA (局_User_Agent, 3, 代理地址, “”, 0)
局_Internet句柄 = InternetOpenA (局_User_Agent, 3, “http=” + 代理地址, “”, 0)

如果真 (局_Internet句柄 = 0)
返回 (“”)
局_Internet连接句柄 = InternetConnectA (局_Internet句柄, 网页_取域名 (网址), 网页_取端口 (网址), 字符 (0), 字符 (0), 3, 0, 0)
如果真 (局_Internet连接句柄 = 0)
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 (局_Internet连接句柄)
InternetCloseHandle (局_Internet句柄)
返回 (“”)
InternetSetOption (局_HTTP请求句柄, #INTERNET_OPTION_SECURITY_FLAGS, 127872, 4)
如果真 (寻找文本 (附加协议头, “Accept:”, , ) = -1)
附加协议头 = 附加协议头 + #换行符“Accept: */*”
如果真 (寻找文本 (附加协议头, “Referer:”, , ) = -1)
附加协议头 = 附加协议头 + #换行符“Referer: ” + 网址
如果真 (寻找文本 (附加协议头, “Accept-Language:”, , ) = -1)
附加协议头 = 附加协议头 + #换行符“Accept-Language: zh-cn”
如果真 (寻找文本 (附加协议头, “User-Agent:”, , ) = -1)
附加协议头 = 附加协议头 + #换行符“User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.146 Safari/537.36”
如果真 (访问方式 = 1)
如果真 (寻找文本 (附加协议头, “Content-Type:”, , ) = -1)
附加协议头 = 附加协议头 + #换行符“Content-Type: application/x-www-form-urlencoded”

如果真 (提交cookies ≠ “”)
如果 (寻找文本 (提交cookies, “Cookie: ”, , ) = -1)
附加协议头 = 附加协议头 + #换行符“Cookie: ” + 提交cookies
附加协议头 = 附加协议头 + #换行符 + 提交cookies

如果 (访问方式 = 0)
HttpSendRequestA (局_HTTP请求句柄, 附加协议头, 取文本长度 (附加协议头), 0, 0)
如果真 (字节集提交 = {  })
字节集提交 = 到字节集 (提交信息)
HttpSendRequestA (局_HTTP请求句柄, 附加协议头, 取文本长度 (附加协议头), 取指针字节集_ (字节集提交), 取字节集长度 (字节集提交))
局_计次 = 0
局_字节集 = 取空白字节集 (1024)
循环判断首 ()
InternetReadFile (局_HTTP请求句柄, 局_字节集, 1024, 局_计次)
局_页面内容 = 局_页面内容 + 取字节集左边 (局_字节集, 局_计次)
循环判断尾 (局_计次 ≠ 0)
返回协议头 = 取空白文本 (5000)
HttpQueryInfoA (局_HTTP请求句柄, 22, 返回协议头, 5000, 0)
InternetCloseHandle (局_HTTP请求句柄)
InternetCloseHandle (局_Internet连接句柄)
InternetCloseHandle (局_Internet句柄)
局_返回协议头 = 分割文本 (返回协议头, #换行符, )
返回cookies = “”
计次循环首 (取数组成员数 (局_返回协议头), n)
如果真 (寻找文本 (局_返回协议头 [n], “Set-Cookie: ”, , ) > 0)
返回cookies = 返回cookies + 文本_取出中间文本 (局_返回协议头 [n], “Set-Cookie: ”, “;”)“; ”

计次循环尾 ()
如果 (寻找文本 (返回协议头, “charset=UTF-8”, , ) > 0)
局_网页内容 = 编码_Utf8到Ansi (局_页面内容)
局_网页内容 = 到文本 (局_页面内容)
返回 (局_网页内容)


作者: 撒加    时间: 2024-7-15 08:11
感谢分享 !
作者: wh1234567    时间: 2024-7-15 09:10
感谢分享
作者: 一指温柔    时间: 2024-7-15 09:17
每日论坛打卡签到
作者: 凌伤    时间: 2024-7-15 09:39

感谢分享 !
作者: vhk    时间: 2024-7-15 10:22

感谢分享 !
作者: hjinpwhe1    时间: 2024-7-15 12:10
哇 厉害了哥
作者: baitso    时间: 2024-7-15 12:21
新技能已get√
作者: 卌卌卌    时间: 2024-7-15 13:04
差一个访问超时参数
作者: 卌卌卌    时间: 2024-7-15 13:06
找不到指定的命令/子程序/Dll命令调用名称“InternetOpenA”
找不到指定的常量名称“INTERNET_OPTION_SECURITY_FLAGS”


作者: LEOONL    时间: 2024-7-15 13:11
卌卌卌 发表于 2024-7-15 13:04
差一个访问超时参数

此方法不是网页访问对象,所以没有超时参数,源码放精易模块里使用
作者: 一尘不染    时间: 2024-7-15 13:52
卌卌卌 发表于 2024-7-15 13:06
找不到指定的命令/子程序/Dll命令调用名称“InternetOpenA”
找不到指定的常量名称“INTERNET_OPTION_SEC ...

精易模块里面不是都有吗?

作者: kanhaiyouyue    时间: 2024-7-15 16:03
老板继续优化.............
作者: 396384183    时间: 2024-7-15 17:32
全都是大佬~
作者: futiem    时间: 2024-7-15 17:44
只是精简一些代码,明白了,就不会这样改
作者: 艾玛克138    时间: 2024-7-15 21:18
谢谢大佬,很好很实用的教程。
作者: 夏亿    时间: 2024-7-15 21:27

感谢分享
作者: jtucar    时间: 2024-7-15 22:02
感谢分享,很给力!~
作者: 查过    时间: 2024-7-16 07:53
已经顶贴,感谢您对论坛的支持!
作者: 豆豆灰常开心    时间: 2024-7-16 07:58
感谢分享,很给力!~
作者: a657938016    时间: 2024-7-16 08:07
支持开源~!感谢分享
作者: qqmqqg    时间: 2024-7-16 08:30
66666666666666666666666666
作者: 一指温柔    时间: 2024-7-16 08:41
共同努力,共同进步
作者: hwq168    时间: 2024-7-16 13:23
共同努力,共同进步
作者: renhe2018    时间: 2024-7-16 14:26
不错,非常给力。感谢分享
作者: 兮籽    时间: 2024-7-16 17:41
并发几下内存泄露严重
作者: 新月才子2    时间: 2024-7-17 19:46
提示: 作者被禁止或删除 内容自动屏蔽
作者: kingchain    时间: 2024-7-18 12:57
        开源精神必须支持~
作者: 光影魔术    时间: 2024-7-18 13:10
感谢分享源码
作者: tsf521    时间: 2024-7-18 15:32
支持开源~!感谢分享
作者: 胖三斤    时间: 2024-7-30 23:17
        感谢分享,很给力!~ 开源精神必须支持~
作者: 罗妹妹    时间: 2024-8-1 23:28
改写了的嘛?  复制进去没用啊
作者: 一直在沉默    时间: 2024-8-3 06:43
66666666666666666666
作者: lixiaoyong    时间: 2024-8-9 09:46

感谢分享 !
作者: 张宝元    时间: 2024-8-13 20:14
找不到指定的常量名称“INTERNET_OPTION_SECURITY_FLAGS”
作者: djdjdj69    时间: 2024-9-2 19:16
网页访问对象也偶尔返回空文本 , , 感谢分享
作者: 熊不熊    时间: 2024-12-5 00:04
感谢分享,很给力!~
作者: 859567203    时间: 2025-3-21 06:34
66666666666666666666




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4