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