我正在开发一个Web数据挖掘项目,通过抓取服务器页面直接从HTML中提取信息。我的努力只集中在一个特定的网站上,该网站有一个安装了caucho树脂的java web服务器。
参数通过url中的值对传递,如www.xxxxxx.com/jm/search?act=see&id=909&...
我通过尝试解码了许多参数,但当然结果非常缓慢。
我的问题是......你是不是Java Gurus知道如何获得这种服务器的所有有效参数?有可能的?
我无法访问服务器,我对caucho树脂一无所知,我正在使用Java编写实用程序来完成这项工作。
答案 0 :(得分:1)
除非您正在与之通信的服务器发布完整的API,否则可以有任意数量的参数。考虑一下 - Web表单可能不会发布服务器响应的所有参数,例如内部使用的参数等。
由于参数处理是在远离“公共”眼睛的情况下实现的,因此在服务器端,它对外界是不透明的。
如果您指的是参数的可能值,答案基本相同。例如,亚马逊有多少有效的产品SKU?
(另请注意,调用这些“请求参数”可能更好,因为servlet也有“init参数”,这是一个完全不同的问题:)
答案 1 :(得分:1)
参数是否有效不是Web服务器定义的内容。它由自定义servlet代码本身定义。它反过来通常在功能需求和/或技术规范文档中定义,也可能在自定义servlet的生成的javadoc中定义。
您最好的选择是联系网站的所有者/维护者以获取此信息。如果您不能或不可以,那么您可能正在做一些违反网站政策的事情。您至少可以在提交给此servlet的任何公共HTML表单的输入元素中找到所有有效参数名称。
更新:根据您的评论:
我说的是参数而不是值。我确实通过查看“隐藏”标签的HTML源代码找到了很多,但这些并不是唯一的,因为我能够通过反复试验找到更多这些标签。
只需使用Firebug或Fiddler即可跟踪真实网络浏览器发出的HTTP请求。您将获得一个所有参数,这些参数已在名称=值对的漂亮表中发送。不需要试验'错误。