【问题标题】:How to Retrieve Correct HTML From a Website如何从网站检索正确的 HTML
【发布时间】:2013-11-07 16:38:02
【问题描述】:

到目前为止我已经尝试过了:

Dim wreq As HttpWebRequest = WebRequest.Create("http://www.nasdaq.com/symbol/goog/financials?query=income-statement&data=quarterly")
    wreq.UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5"
    wreq.Method = "get"
    Dim prox As IWebProxy = wreq.Proxy
    prox.Credentials = CredentialCache.DefaultCredentials
    Dim document As New HtmlAgilityPack.HtmlDocument
    Dim web As New HtmlAgilityPack.HtmlWeb
    web.UseCookies = True
    web.PreRequest = New HtmlAgilityPack.HtmlWeb.PreRequestHandler(AddressOf onPreReq)
    wreq.CookieContainer = cookies
    Dim res As HttpWebResponse = wreq.GetResponse()
    document.Load(res.GetResponseStream, True)
    Debug.WriteLine(document.DocumentNode.OuterHtml)

但它会返回此网址的 HTML:http://www.nasdaq.com/symbol/goog/financials?query=income-statement

而不是这个:http://www.nasdaq.com/symbol/goog/financials?query=income-statement&data=quarterly

我做错了什么?

其他信息

这里是onPreReq

Private Function onPreReq(req As HttpWebRequest)

    req.CookieContainer = cookies
    Return True

End Function

【问题讨论】:

  • 听起来您的 data 参数没有通过。也许试试这样 - stackoverflow.com/a/17219511/1454048
  • 我没有试过你的代码(如果有时间我会稍后),但基本上:你两个网址之间的区别只是&data=quarterly部分,这似乎被忽略了,对吧?这只是一个额外的参数,它是标准 HTTP GET 请求的一部分。尝试使用我上面链接中的方法,看看是否有帮助。
  • onPreReq 中有什么东西正在更改地址。我没有 HtmlAgilityPack,所以我注释掉了一些代码并添加了一些其他代码,它看起来是正确的。
  • 所以如果您点击上面发布的链接,它会将您带到另一个站点吗?奇怪的。请注意,我在测试中也没有使用 cookie,因为您的代码不完整。可能是 cookie 对您执行此操作,或者该网站正在重定向您,因为您访问它的次数过多。我以前见过。不太可能,因为他们只是将您引导至错误的财务页面。他们通常会将您重定向到某个 HTML 页面,该页面表明您的行为违反了他们的政策。
  • 1:我认为 admdrew 只是指出了您的 2 个链接之间的明显问题。我不相信你做错了。 2:我不知道您的 cookie 中有什么或网站如何使用它们。尽量不要通过它们,看看会发生什么。 3:一切都失败了,在另一台计算机上的另一个公共IP(即,在朋友家)上尝试你的代码,看看它是否有效。如果是这样,那么该网站会因为点击次数过多而欺骗您。

标签: html vb.net html-agility-pack


【解决方案1】:

问题出在我的变量Ticker 上。它包含我用来创建网址的股票代码。到目前为止,我一直在使用所有大写字母(例如 GOOG)。我已将所有代码更改为小写(例如 goog),这似乎成功了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-23
    • 1970-01-01
    • 1970-01-01
    • 2010-09-26
    • 2014-08-18
    相关资源
    最近更新 更多