【问题标题】:Web scraping in classic asp [closed]经典asp中的网页抓取[关闭]
【发布时间】:2017-03-10 17:34:19
【问题描述】:

我正在尝试使用经典的 asp 抓取网页。为什么,因为我有一个要包含在 2 个域中的 asp 文件,我不想更新 2 个副本。

我是整个网络抓取的新手,很难找到关于如何使用经典 asp 进行操作的“傻瓜”教程(不是我的偏好,而是我坚持的)。我不需要任何花哨的东西,只需从 here.asp 抓取整个页面源并将其发布到 myotherpage.asp 上。

在代码或教程方面的小帮助将不胜感激。

【问题讨论】:

  • 据我所知,“Web Scraping”是指捕获网站的输出。你不能用经典的 asp 做到这一点,因为它使用服务器端代码,你永远不会在 http 请求中看到,你需要访问服务器。如果您的两个域都托管在同一台服务器上,那么您可以采取各种措施让它们共享相同的文件。
  • @John 这就是WinHttpRequest object 的用途,仅仅因为它是服务器端的,并不意味着服务器不能像客户端一样工作。
  • @Lankymart 如果所有 OP 需要的是来自 here.asp 的输出,那么是的,其他服务器可以拉它。我读它的方式是他希望服务器 2 能够从服务器 1 上的文件中读取服务器端代码。在这方面问题不是很清楚。
  • @John 对我来说,“Web Scraping”这个词总是暗示客户端渲染,但老实说,这个问题并不清楚,也没有尝试解决任何问题。

标签: web-scraping asp-classic


【解决方案1】:

要在 Classic ASP 中从 URL 检索 HTML 源代码,您可以使用如下代码:

<% 
Set obj = CreateObject("MSXML2.ServerXMLHTTP")
obj.Open "GET", "http://www.example.com/page.html", False
obj.Send ""
Response.Write obj.ResponseText
Set obj = Nothing 
%>

在本例中,obj.ResponseText 是 HTML 源代码。

【讨论】:

  • msxml3.dll error '80072ee2' 操作超时... obj.Send ""
  • 您可能需要增加其中一项超时时间,请参阅docs.microsoft.com/en-us/previous-versions/windows/desktop/…
  • 添加 obj.SetTimeouts 600000, 600000, 15000, 15000 后没有变化 尝试从localhost:8000/?file=C:\IN\word.doc&out=C:\OUT 之类的 url 获取响应,它应该返回 "处理完文件后”。唯一的提示是关于超时的错误。它适用于 PHP 和 curl,但更喜欢使用 ASP。
猜你喜欢
  • 2010-10-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-26
相关资源
最近更新 更多