如果是HTTP协议,很简单,直接用get-url函数
如果是HTTPS协议,就需要用到curl,可以通过exec的方式调用curl命令登录,当然需要有合法的用户名和密码才行。然后分析返回的结果中的cookie,一般得到session id后发回去,模拟用户访问各个页面,获得页面结果。
如果对方网页是gb2312编码, newlisp不能直接分析内容,需要用下面的命令转换成utf-8编码的文件,再读取回来使用。
下面是示例代码用于HTTP页面。
(define (Reader:filter)
(set 'r (get-url (self 1)))
(if (file? "page")
(delete-file "page"))
(if (file? "page2")
(delete-file "page2"))
(append-file "page" r)
(exec "iconv -f GB2312 -t utf-8 page > page2")
(set 'r (read-file "page2"))
(regex "your search pattern" r)
(set 'a $1)
(set 'b $2)
(list a b))
只需要在regex一行换上自己的search pattern就可以搜索网页了。