【问题标题】:How do I get the HTML code from a website and into a string for VB?如何从网站获取 HTML 代码并将其转换为 VB 字符串?
【发布时间】:2020-08-13 22:31:36
【问题描述】:

我知道这会将页面源代码存储在变量HTML中。

Dim Client As New WebClient
URL = Console.Readline
HTML = Client.DownloadString(New Uri(URL))

但这样做并不能完全保存网站中的所有元素,例如某些 URL 链接和视频也无法看到。

如何将页面中的所有个页面元素放入字符串变量中?

谢谢

【问题讨论】:

  • 您不能使用 WebClient 或 HttpClient(或直接使用 WebRequest)下载由脚本生成/填充的页面内容。您需要使用一个WebBrowser 类(类,不是控件),导航到URL,使用[WebBrowser].ReadyState != WebBrowserReadyState.Complete 旁边的DocumentCompleted 事件来验证Html Document 是否已经完全呈现,然后获取[WebBrowser].Document 对象并使用它方法(GetElementByIdGetElementsByTagName 等)来提取特定 HtmlElements 的值。

标签: html vb.net web-scraping webclient


【解决方案1】:

在你的程序中添加以下代码:

Console.Write("Input the site URL: ")
Dim URL As String = Console.ReadLine()

Console.WriteLine(New Net.WebClient().DownloadString(URL))
Console.ReadKey() ' to wait for user exit

享受吧!

【讨论】:

  • 抱歉,这不是我想要的。我不知道它是否输出了任何不同的东西。我正在尝试从 HTML 代码中提取一个链接,该链接在我检查网站上的元素时显示,但当我使用此代码或我在问题中显示的代码时,该链接未显示。
【解决方案2】:
Dim request As HttpWebRequest = TryCast(WebRequest.Create("https://google.com/"), HttpWebRequest)
Dim response As HttpWebResponse = TryCast(request.GetResponse(), HttpWebResponse)
Dim dataStream As Stream = response.GetResponseStream()
Dim reader As New StreamReader(dataStream)
Dim responseFromServer As String = reader.ReadToEnd()
reader.Close()
response.Close()

'Use responseFromServer to see the Full Source Code of the Html Page

【讨论】:

  • 我收到错误消息:“未定义类型‘流’。”和“未定义类型'StreamReader'”。我是不是忘了做点什么?编辑:我意识到我需要“IO”。在他们面前。另外,很抱歉,这段代码不是我要找的,它和我的代码做同样的事情。
  • 导入 System.Io
  • 如果它没有显示完整的源代码,您将需要使用 Cookie,例如阅读登录下一页的源代码。
猜你喜欢
  • 2013-11-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-30
  • 2021-04-03
  • 2011-12-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多