开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 169|回复: 6
打印 上一主题 下一主题
收起左侧

[易语言] 发包软件返回正常,易语言get返回数据不一样

[复制链接]
结帖率:77% (10/13)
跳转到指定楼层
楼主
发表于 2025-6-9 04:24:02 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式   四川省绵阳市
100精币
地址:
https://bscscan.com/address/0xe06e5ce04197dda3e6640cc3a210eee5947af79f

协议头:

Host: bscscan.com
Connection: keep-alive
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36
Accept-Language: zh-CN,zh;q=0.9,ak;q=0.8


ck:

__cflb=02DiuJNoxEYARvg2sN6b3yjRK7ShaYzuKQiNQW7H6y3xx; ASP.NET_SessionId=zziexqdooelnpw4tpd4iqk43; _ga=GA1.1.971342103.1749405645; bscscan_offset_datetime=+8; bscscan_switch_token_amount_value=value; cf_clearance=vHaeEr2yCSVrbSzl3AOnoGKcfxAEXXKmjUFFPcYp4Mo-1749406905-1.2.1.1-Aq8N8kqg1ZP7qfRqNQDnFMHNhT02qIH7VwbbfwSw9AVIgX8U5IUWv7oJhjxu_aZkLLmrhkZLUNMrqIJgd07pZ9KOOM5YBJHtA5lLa45Fss7OQmhmCSazcUNVR2MwU__AekV88KiP8zod.wn8AdVYInn20_M1f5r_aZawWZwnkVPKp.alQkeNJ0dIIYjmfBScx3wURlXPhqkn7KFb5UlYhlJeWMyxzCc.ai3MEXXMrJ5i8dnHeY0TAGae1GUUJwXLaklxn7gLSw5pTrZzlQk1OANdn_PJTty4nZH1xJz2XVs_k41PLd0eNuTjLel_HOr5ly5mFMyEnU6q9lGrDAAkN0Kt2LRjXEvQdrx45rN5xfXIZOQZ6aSc1FBMelvoNg7x; _ga_PQY6J2Q8EP=GS2.1.s1749405645$o1$g1$t1749407254$j60$l0$h0

为毛在易语言网页访问_对象()
返回的数据不一样 获取不到数据


回答提醒:如果本帖被关闭无法回复,您有更好的答案帮助楼主解决,请发表至 源码区 可获得加分喔。
友情提醒:本版被采纳的主题可在 申请荣誉值 页面申请荣誉值,获得 1点 荣誉值,荣誉值可兑换荣誉会员、终身vip用户组。
快捷通道:申请荣誉值无答案申请取消悬赏投诉有答案未采纳为最佳
结帖率:100% (11/11)

签到天数: 13 天

沙发
发表于 2025-6-9 08:13:13 | 只看该作者   广西壮族自治区百色市
因为有cf验证
回复

使用道具 举报

结帖率:100% (2/2)

签到天数: 13 天

板凳
发表于 2025-6-9 08:18:30 | 只看该作者   江苏省扬州市
有预算的话可以叫我...
回复

使用道具 举报

结帖率:76% (13/17)

签到天数: 12 天

地板
发表于 2025-6-9 08:36:25 | 只看该作者   黑龙江省黑河市
盲猜人机验证拦截了
回复

使用道具 举报

结帖率:100% (106/106)

签到天数: 11 天

地下
发表于 2025-6-9 08:37:12 | 只看该作者   浙江省温州市
  
子程序名返回值类型公开备 注
功能_网页访问文本型 本命令由【精易网页调试助手】生成,请配合精易模块使用。
变量名类 型静态数组备 注
局_网址文本型 
局_方式整数型 
局_提交cookie文本型 
ADD_协议头类_POST数据类 
局_提交协议头文本型 
局_结果字节集 
局_返回文本型 
' [url]https://bscscan.com/address/0xe06e5ce04197dda3e6640cc3a210eee5947af79f[/url]
局_网址 = "https://bscscan.com/address/0xe06e5ce04197dda3e6640cc3a210eee5947af79f"
局_方式 = 0
局_提交cookie = "__cflb=02DiuJNoxEYARvg2sN6b3yjRK7ShaYzuKQiNQW7H6y3xx; ASP.NET_SessionId=zziexqdooelnpw4tpd4iqk43; _ga=GA1.1.971342103.1749405645; bscscan_offset_datetime=+8; bscscan_switch_token_amount_value=value; cf_clearance=vHaeEr2yCSVrbSzl3AOnoGKcfxAEXXKmjUFFPcYp4Mo-1749406905-1.2.1.1-Aq8N8kqg1ZP7qfRqNQDnFMHNhT02qIH7VwbbfwSw9AVIgX8U5IUWv7oJhjxu_aZkLLmrhkZLUNMrqIJgd07pZ9KOOM5YBJHtA5lLa45Fss7OQmhmCSazcUNVR2MwU__AekV88KiP8zod.wn8AdVYInn20_M1f5r_aZawWZwnkVPKp.alQkeNJ0dIIYjmfBScx3wURlXPhqkn7KFb5UlYhlJeWMyxzCc.ai3MEXXMrJ5i8dnHeY0TAGae1GUUJwXLaklxn7gLSw5pTrZzlQk1OANdn_PJTty4nZH1xJz2XVs_k41PLd0eNuTjLel_HOr5ly5mFMyEnU6q9lGrDAAkN0Kt2LRjXEvQdrx45rN5xfXIZOQZ6aSc1FBMelvoNg7x; _ga_PQY6J2Q8EP=GS2.1.s1749405645$o1$g1$t1749407254$j60$l0$h0"
ADD_协议头.添加 ("Host","bscscan.com")
ADD_协议头.添加 ("Connection","keep-alive")
ADD_协议头.添加 ("User-Agent","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36")
ADD_协议头.添加 ("Accept","application/json, text/plain, */*")
ADD_协议头.添加 ("Accept-Language","zh-CN,zh;q=0.9")
局_提交协议头 = ADD_协议头.获取协议头数据 ()
局_结果 = 网页_访问_对象 (局_网址, 局_方式, , 局_提交Cookie, , 局_提交协议头, , , , , , , , , , , )
局_返回 = 到文本 (编码_编码转换对象 (局_结果))
返回 (局_返回)

回复

使用道具 举报

结帖率:100% (106/106)

签到天数: 11 天

6
发表于 2025-6-9 08:37:33 | 只看该作者   浙江省温州市
.版本 2

.子程序 功能_网页访问, 文本型, , 本命令由【精易网页调试助手】生成,请配合精易模块使用。
.局部变量  局_网址, 文本型
.局部变量  局_方式, 整数型
.局部变量  局_提交cookie, 文本型
.局部变量  ADD_协议头, 类_POST数据类
.局部变量  局_提交协议头, 文本型
.局部变量  局_结果, 字节集
.局部变量  局_返回, 文本型
' https://bscscan.com/address/0xe0 ... cc3a210eee5947af79f
局_网址 = "https://bscscan.com/address/0xe06e5ce04197dda3e6640cc3a210eee5947af79f"
局_方式 = 0
局_提交cookie = "__cflb=02DiuJNoxEYARvg2sN6b3yjRK7ShaYzuKQiNQW7H6y3xx; ASP.NET_SessionId=zziexqdooelnpw4tpd4iqk43; _ga=GA1.1.971342103.1749405645; bscscan_offset_datetime=+8; bscscan_switch_token_amount_value=value; cf_clearance=vHaeEr2yCSVrbSzl3AOnoGKcfxAEXXKmjUFFPcYp4Mo-1749406905-1.2.1.1-Aq8N8kqg1ZP7qfRqNQDnFMHNhT02qIH7VwbbfwSw9AVIgX8U5IUWv7oJhjxu_aZkLLmrhkZLUNMrqIJgd07pZ9KOOM5YBJHtA5lLa45Fss7OQmhmCSazcUNVR2MwU__AekV88KiP8zod.wn8AdVYInn20_M1f5r_aZawWZwnkVPKp.alQkeNJ0dIIYjmfBScx3wURlXPhqkn7KFb5UlYhlJeWMyxzCc.ai3MEXXMrJ5i8dnHeY0TAGae1GUUJwXLaklxn7gLSw5pTrZzlQk1OANdn_PJTty4nZH1xJz2XVs_k41PLd0eNuTjLel_HOr5ly5mFMyEnU6q9lGrDAAkN0Kt2LRjXEvQdrx45rN5xfXIZOQZ6aSc1FBMelvoNg7x; _ga_PQY6J2Q8EP=GS2.1.s1749405645$o1$g1$t1749407254$j60$l0$h0"
ADD_协议头.添加 ("Host","bscscan.com")
ADD_协议头.添加 ("Connection","keep-alive")
ADD_协议头.添加 ("User-Agent","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36")
ADD_协议头.添加 ("Accept","application/json, text/plain, */*")
ADD_协议头.添加 ("Accept-Language","zh-CN,zh;q=0.9")

局_提交协议头 = ADD_协议头.获取协议头数据 ()

局_结果 = 网页_访问_对象 (局_网址, 局_方式, , 局_提交Cookie, , 局_提交协议头, , , , , , , , , , , )
局_返回 = 到文本(编码_编码转换对象(局_结果))
返回(局_返回)

回复

使用道具 举报

结帖率:57% (12/21)

签到天数: 6 天

7
发表于 2025-6-11 11:28:18 | 只看该作者   浙江省湖州市
### 易语言获取网页数据不一致问题分析与解决方案

从你的描述来看,易语言通过`网页访问_对象()`获取的数据与发包软件返回的不一致,这通常是由于网络请求参数不完整或格式不正确导致的。下面我将详细分析问题原因并提供解决方案。


#### 一、问题原因分析

1. **请求头不完整**:易语言默认的`网页访问_对象()`可能没有包含所有必要的请求头
2. **Cookie处理问题**:手动设置Cookie的方式可能不正确
3. **编码格式差异**:响应内容的编码处理不一致
4. **请求方法错误**:可能需要使用POST方法而非GET
5. **反爬机制影响**:网站可能检测到非浏览器请求并返回不同内容


#### 二、解决方案:使用完整请求头和Cookie

以下是优化后的易语言代码,包含完整的请求头和Cookie处理:

```易语言
.版本 2
.支持库 spec
.支持库 eAPI

.子程序 _按钮1_被单击
.局部变量 网址, 文本型
.局部变量 网页对象, 对象
.局部变量 响应内容, 文本型
.局部变量 请求头, 文本型
.局部变量 Cookie, 文本型

// 设置目标网址
网址 = "https://bscscan.com/address/0xe06e5ce04197dda3e6640cc3a210eee5947af79f"

// 构建完整请求头
请求头 = "Host: bscscan.com" + #换行符 +
         "Connection: keep-alive" + #换行符 +
         "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36" + #换行符 +
         "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8" + #换行符 +
         "Accept-Language: zh-CN,zh;q=0.9,ak;q=0.8" + #换行符 +
         "Cache-Control: max-age=0" + #换行符 +
         "Upgrade-Insecure-Requests: 1" + #换行符 +
         "Sec-Fetch-Dest: document" + #换行符 +
         "Sec-Fetch-Mode: navigate" + #换行符 +
         "Sec-Fetch-Site: none" + #换行符 +
         "Sec-Fetch-User: ?1" + #换行符

// 设置完整Cookie
Cookie = "__cflb=02DiuJNoxEYARvg2sN6b3yjRK7ShaYzuKQiNQW7H6y3xx; ASP.NET_SessionId=zziexqdooelnpw4tpd4iqk43; _ga=GA1.1.971342103.1749405645; bscscan_offset_datetime=+8; bscscan_switch_token_amount_value=value; cf_clearance=vHaeEr2yCSVrbSzl3AOnoGKcfxAEXXKmjUFFPcYp4Mo-1749406905-1.2.1.1-Aq8N8kqg1ZP7qfRqNQDnFMHNhT02qIH7VwbbfwSw9AVIgX8U5IUWv7oJhjxu_aZkLLmrhkZLUNMrqIJgd07pZ9KOOM5YBJHtA5lLa45Fss7OQmhmCSazcUNVR2MwU__AekV88KiP8zod.wn8AdVYInn20_M1f5r_aZawWZwnkVPKp.alQkeNJ0dIIYjmfBScx3wURlXPhqkn7KFb5UlYhlJeWMyxzCc.ai3MEXXMrJ5i8dnHeY0TAGae1GUUJwXLaklxn7gLSw5pTrZzlQk1OANdn_PJTty4nZH1xJz2XVs_k41PLd0eNuTjLel_HOr5ly5mFMyEnU6q9lGrDAAkN0Kt2LRjXEvQdrx45rN5xfXIZOQZ6aSc1FBMelvoNg7x; _ga_PQY6J2Q8EP=GS2.1.s1749405645$o1$g1$t1749407254$j60$l0$h0"

// 创建网页访问对象
网页对象.创建 ("WinHttp.WinHttpRequest.5.1", )

// 设置请求头和Cookie
网页对象.写属性 ("RequestHeader", 请求头)
网页对象.写属性 ("AllCookies", Cookie)

// 发送请求
网页对象.方法 ("Open", "GET", 网址, 假)
网页对象.方法 ("Send", )

// 获取响应内容
响应内容 = 网页对象.读属性 ("ResponseText", )

// 显示结果
编辑框1.内容 = 响应内容
调试输出 ("获取内容长度:", 取文本长度 (响应内容))
.子程序尾
```


#### 三、进阶方案:使用精易模块或其他HTTP组件

如果上述方法仍无法解决问题,建议使用功能更完善的模块:

```易语言
.版本 2
.支持库 spec
.支持库 精易模块

.子程序 _按钮1_被单击
.局部变量 网址, 文本型
.局部变量 请求头, 文本型
.局部变量 Cookie, 文本型
.局部变量 响应内容, 文本型
.局部变量 HTTP, 类_HTTP

// 设置目标网址
网址 = "https://bscscan.com/address/0xe06e5ce04197dda3e6640cc3a210eee5947af79f"

// 构建完整请求头
请求头 = "Host: bscscan.com" + #换行符 +
         "Connection: keep-alive" + #换行符 +
         "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36" + #换行符 +
         "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8" + #换行符 +
         "Accept-Language: zh-CN,zh;q=0.9,ak;q=0.8" + #换行符 +
         "Cache-Control: max-age=0" + #换行符 +
         "Upgrade-Insecure-Requests: 1" + #换行符

// 设置完整Cookie
Cookie = "__cflb=02DiuJNoxEYARvg2sN6b3yjRK7ShaYzuKQiNQW7H6y3xx; ASP.NET_SessionId=zziexqdooelnpw4tpd4iqk43; _ga=GA1.1.971342103.1749405645; bscscan_offset_datetime=+8; bscscan_switch_token_amount_value=value; cf_clearance=vHaeEr2yCSVrbSzl3AOnoGKcfxAEXXKmjUFFPcYp4Mo-1749406905-1.2.1.1-Aq8N8kqg1ZP7qfRqNQDnFMHNhT02qIH7VwbbfwSw9AVIgX8U5IUWv7oJhjxu_aZkLLmrhkZLUNMrqIJgd07pZ9KOOM5YBJHtA5lLa45Fss7OQmhmCSazcUNVR2MwU__AekV88KiP8zod.wn8AdVYInn20_M1f5r_aZawWZwnkVPKp.alQkeNJ0dIIYjmfBScx3wURlXPhqkn7KFb5UlYhlJeWMyxzCc.ai3MEXXMrJ5i8dnHeY0TAGae1GUUJwXLaklxn7gLSw5pTrZzlQk1OANdn_PJTty4nZH1xJz2XVs_k41PLd0eNuTjLel_HOr5ly5mFMyEnU6q9lGrDAAkN0Kt2LRjXEvQdrx45rN5xfXIZOQZ6aSc1FBMelvoNg7x; _ga_PQY6J2Q8EP=GS2.1.s1749405645$o1$g1$t1749407254$j60$l0$h0"

// 创建HTTP对象
HTTP.初始化 ()

// 设置请求头和Cookie
HTTP.添加请求头 ("Host", "bscscan.com")
HTTP.添加请求头 ("Connection", "keep-alive")
HTTP.添加请求头 ("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36")
HTTP.添加请求头 ("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8")
HTTP.添加请求头 ("Accept-Language", "zh-CN,zh;q=0.9,ak;q=0.8")
HTTP.添加请求头 ("Cache-Control", "max-age=0")
HTTP.添加请求头 ("Upgrade-Insecure-Requests", "1")
HTTP.设置Cookie (Cookie)

// 发送GET请求
响应内容 = HTTP.GET (网址)

// 显示结果
编辑框1.内容 = 响应内容
调试输出 ("获取内容长度:", 取文本长度 (响应内容))
HTTP.清除 ()
.子程序尾
```


#### 四、高级方案:使用WebBrowser控件模拟浏览器

对于反爬严格的网站,模拟真实浏览器访问是最可靠的方法:

```易语言
.版本 2
.支持库 spec

.子程序 _按钮1_被单击
.局部变量 窗口句柄, 整数型
.局部变量 WebBrowser句柄, 整数型
.局部变量 网址, 文本型

// 设置目标网址
网址 = "https://bscscan.com/address/0xe06e5ce04197dda3e6640cc3a210eee5947af79f"

// 创建窗口并添加WebBrowser控件
窗口句柄 = 创建窗口 ("#32770", "网页访问", 0, 0, 800, 600, 0, 0)
WebBrowser句柄 = 创建窗口 ("WebBrowser", "", 0, 0, 800, 600, 窗口句柄, 1)

// 导航到目标网址
发送消息 (WebBrowser句柄, 0x112, 0x10000, 网址)

// 等待页面加载完成
.局部变量 计时开始, 整数型
计时开始 = 取现行时钟 ()
.循环判断首 (取现行时钟 () - 计时开始 < 10000)  // 最多等待10秒
    延时 (100)
    .如果真 (取窗口标题 (WebBrowser句柄) ≠ "正在打开网页...")
        跳出循环
    .如果真结束
.循环判断尾 ()

// 获取页面源代码
.局部变量 文档对象, 对象
.局部变量 页面内容, 文本型

文档对象 = 取窗口对象 (WebBrowser句柄, "Document")
.如果真 (文档对象.是否为空 () = 假)
    页面内容 = 文档对象.读属性 ("body.innerHTML", )
    编辑框1.内容 = 页面内容
.如果真结束

// 关闭窗口
销毁窗口 (窗口句柄)
.子程序尾
```


#### 五、问题排查步骤

1. **检查响应状态码**:在易语言中添加代码获取响应状态码,确认请求是否成功
   
```易语言
响应状态码 = 网页对象.读属性 ("Status", )
调试输出 ("响应状态码:", 响应状态码)
```

2. **对比请求头**:使用Fiddler或Chrome开发者工具捕获发包软件和易语言的请求,对比差异

3. **测试Cookie有效性**:在浏览器中导入相同Cookie,确认是否能获取正确内容

4. **尝试POST请求**:某些网站GET请求返回不同内容,尝试使用POST请求

5. **添加Referer头**:很多网站需要Referer头来验证请求来源

```易语言
请求头 = 请求头 + "Referer: https://bscscan.com/" + #换行符
```


#### 六、注意事项

1. 网站可能有反爬机制,建议:
   - 添加随机请求间隔
   - 轮换User-Agent
   - 使用代理IP

2. 部分网站使用动态加载内容,需要等待JS执行完成

3. 响应内容可能使用gzip压缩,需要解压缩处理

4. 注意编码问题,确保使用UTF-8编码

通过以上方法,应该能解决易语言获取数据不一致的问题。如果仍有问题,建议提供易语言返回数据和发包软件返回数据的对比示例,以便进一步分析。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报QQ: 793400750,邮箱:[email protected]
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表