【发布时间】:2011-04-17 19:35:52
【问题描述】:
在 java 中,有没有办法获取网页的内容,这是一个 .ASPX 文件。 我知道如何从普通的 HTML 页面读取/写入任何内容,但是 asp 页面似乎有一个用于多个页面的 URL,因此实际上不可能通过 URL 到达所需的页面。
我知道您不能/不会在这里给我完整的说明,但您能否向我发送正确的方向?
提前致谢。
【问题讨论】:
标签: java asp.net web-scraping
在 java 中,有没有办法获取网页的内容,这是一个 .ASPX 文件。 我知道如何从普通的 HTML 页面读取/写入任何内容,但是 asp 页面似乎有一个用于多个页面的 URL,因此实际上不可能通过 URL 到达所需的页面。
我知道您不能/不会在这里给我完整的说明,但您能否向我发送正确的方向?
提前致谢。
【问题讨论】:
标签: java asp.net web-scraping
与任何其他类型的页面相比,ASPX 页面没有什么特别之处; “普通”的 html 页面也可以动态生成。
不要忘记查询字符串也是 URL 的一部分。如果没有一些查询字符串值,许多 ASPX、PHP 等页面甚至可能无法“正确”请求。而其他网站根本没有文件扩展名......就像这个网站本身一样。您只需要确保获取每个唯一“页面”的完整 URL。
【讨论】:
我不是 .asp 方面的专家,所以我可能错了。但是,我的印象是 .asp 页面最终应该返回 HTML(类似于 .jsp 页面所做的),因此您可以像获取 HTML 页面一样获取内容。
但是,你写的
asp 页面似乎有多个页面的一个 URL
这让我觉得您的 .asp 页面可能正在使用 AJAX,因此页面内容可能会发生变化,而 URL 不会。这是你的情况吗?
【讨论】:
我了解到您正在尝试从客户端 PC 读取 aspx,而不是从服务器读取。
如果是这样的话,访问 HTTP 资源是独立于服务器使用的技术的,你需要做的就是打开一个 http 请求并检索结果。
如果您从一个 URL 中看到多个页面,则说明发生了以下情况之一:
1) POST 数据被发送到 aspx,由于这些参数,它呈现不同的 HTML
2) 您实际上并不是在查看内部页面,而是查看为正在呈现的 HTML 提供框架的页面
3) 页面大量使用 Ajax 来呈现。页面的“内容”不是通过初始请求下载的,而是通过javascript下载的。
一般来说,这可能是第一个原因。
【讨论】: