我正在做一个简单的机器人,可以浏览一些页面并在那里“阅读”新闻。但是在某些页面中,例如“ https://www.iprofesional.com”,该连接不起作用。
我的代码如下:
package require http
package require tls
package require tdom
::http::config -useragent "Mozilla/4.75 (X11; U; Linux 2.2.17; i586; Nav)"
::http::register https 443 [list ::tls::socket -tls1 1] ;# "-tls1 1" is required since [POODLE]
if {[catch "::http::geturl $url" http] == 0} {
set html [::http::data $http]
::http::cleanup $http
::http::unregister https
}
如果使用该网址运行此代码,您将看到问题所在。
有什么主意如何让我的代码使用该网址?
谢谢。
答案 0 :(得分:0)
我运行了代码,并且毫无问题地得到了html内容。 刚刚添加
)(
包装行之后,和
set url "https://www.iprofesional.com"
if语句的末尾。
我想粘贴错误会更好。
Saludos,
答案 1 :(得分:0)
冻结控制台的完整代码是:
package require http
package require tls
package require tdom
set url "https://www.iprofesional.com"
::http::config -useragent "Mozilla/4.75 (X11; U; Linux 2.2.17; i586; Nav)"
::http::register https 443 [list ::tls::socket -tls1 1] ;# "-tls1 1" is required since [POODLE]
if {[catch "::http::geturl $url" http] == 0} {
set html [::http::data $http]
::http::cleanup $http
::http::unregister https
puts $html
}
它将控制台冻结在:
puts $html
我在装有Windows XP SP3 / 32b和Windows 7 Professional Sp1 / 64b的笔记本电脑的Acer Extensa 5230中进行了尝试。也许不知道与硬件相关的问题,但是如果我将html变量作为参数传递给函数,则该函数无需任何探测即可工作。
在Windows XP中,我正在运行tcl / tk 8.6,然后下载了“ ActiveTcl-8.6.6.8607-MSWin32-x86-403667.exe”,并将其安装在Windows 7 Sp1 / 64b分区中,并且存在相同的问题。
我将尝试在另一台计算机上测试此问题,并将发布结果。