0

我正在研究一个网络数据挖掘项目,通过爬取服务器页面直接从 HTML 中提取信息。我的工作只集中在一个安装了 caucho 树脂的具有 java web 服务器的特定网站上。

参数是通过 url 中的值对传递的,就像 www.xxxxxx.com/jm/search?act=see&id=909&...我通过 try 解码了许多参数一样,但是当然,结果出来的速度非常慢。

我的问题是......你Java大师知道如何获取这种服务器的所有有效参数吗?有可能的?

我无法访问服务器,我对 caucho 树脂一无所知,我正在用 Java 编写一个实用程序来完成这项工作。

4

2 回答 2

1

除非您正在与之通信的服务器发布完整的 API,否则可以有任意数量的参数。考虑一下这一点——Web 表单可能不会发布服务器响应的所有参数,例如内部使用的参数等。

由于参数处理是在远离“公众”视线的情况下实现的,因此在服务器端,它对外界是不透明的。

如果您指的是参数的可能,则答案基本相同。例如,亚马逊有多少有效的产品 SKU?

(另请注意,调用这些“请求参数”可能会更好,因为 servlet 也有“初始化参数”,这是一个完全不同的问题:)

于 2011-10-05T16:59:40.407 回答
1

参数是否有效不是由 Web 服务器定义的。它由自定义 servlet 代码本身定义。反过来,它通常在功能需求和/或技术规范文档中定义,也可能在自定义 servlet 的生成 javadoc 中定义。

最好的办法是联系网站的所有者/维护者以获取此信息。如果您不能或可能不会,那么您可能正在做一些违反网站政策的事情。您至少可以在提交给此 servlet 的任何公共 HTML 表单的输入元素中找到所有有效的参数名称。


更新:根据您的评论:

我说的是参数而不是值。通过查看“隐藏”标签的 HTML 源代码,我确实设法找到了其中的许多,但这些并不是唯一的,因为我能够通过反复试验找到更多。

只需使用FirebugFiddler来跟踪由真正的网络浏览器发出的 HTTP 请求。您将获得所有参数,这些参数通过名称=值对在一个漂亮的表中发送。无需试错。

于 2011-10-05T17:01:00.367 回答