Как получить исходный код HTML-страницы с помощью VB.net ?

#html #vb.net #download

#HTML #vb.net #Скачать

Вопрос:

Я пишу программу, которая получает исходный код веб-страницы с видео на ней. Затем он использует регулярные выражения, чтобы изолировать ссылку для скачивания этого видео. затем он использует httpwebrequest и httpwebresponse для загрузки видео. Моя проблема возникает, когда на определенных сайтах есть страница, на которой вы должны нажать продолжить, чтобы перейти на страницу видео.

Например, на воспроизводится видеоhttp://nextgenvidz.com/view/s995xvc9e2fv называется «The.Matrix.Reloaded.2003.mp4» поэтому я говорю своей программе получить исходный код для URL «http://nextgenvidz.com/view/s995xvc9e2fv» но он не может найти ссылку на скачивание видео, потому что он ищет файл в исходном коде страницы «продолжить». Если вы перейдете на этот веб-сайт выше и просмотрите исходный код, вы не увидите ссылку. Затем нажмите продолжить и проделайте то же самое, когда появится видео, и вы заметите, что файл присутствует только во втором.

Как я могу получить исходный код страницы, на которой воспроизводится видео, а не страницы, на которой я должен нажать продолжить?

Я пытаюсь использовать этот код:

 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim Loading As String = "Loading..."
    TextBox1.Text = Loading
    Dim request As System.Net.HttpWebRequest = System.Net.HttpWebRequest.Create(TextBox2.Text)
    Dim response As System.Net.HttpWebResponse = request.GetResponse()

    Dim sr As System.IO.StreamReader = New System.IO.StreamReader(response.GetResponseStream())

    Dim sourcecode As String = sr.ReadToEnd()
    TextBox1.Text = sourcecode
End Sub
  

Может быть, есть способ автоматически выбрать кнопку «Продолжить» программно?

Комментарии:

1. Я подозреваю, что у кнопки есть какой-то javascript на стороне клиента, который вам нужно будет интерпретировать. Как будто автор не хотел, чтобы вы это делали.

2. хорошо, как бы я получил исходный HTML-код для страницы, на которой на самом деле есть видео, а не страница продолжения??

3. вам придется делать то, что делает кнопка, когда вы нажимаете на нее, но это, вероятно, запутано серверным элементом. Я не могу предоставить общий ответ, и я не хочу переходить по вашей ссылке из моего текущего местоположения.

Ответ №1:

Этот парень ответил на это очень хорошо.

Как я могу получить исходный код HTML-страницы для веб-сайтов в VB.NET ?

Это был его код:

 Dim sourceString As String = New System.Net.WebClient().DownloadString("SomeWebPage")
  

Ответ №2:

Я пытался написать что-то подобное в прошлом и обнаружил, что существует множество ограничений (либо со стороны браузеров, либо со стороны самого протокола) для предотвращения автоматизации. Создание универсального парсера веб-сайта будет невозможно. Вам пришлось бы написать процедуры синтаксического анализа для отдельных сайтов, основываясь на том, как они скрывают от вас контент. Сначала вы должны определить шаблон того, как каждый из этих сайтов скрывает контент от пользователя, а затем реализовать фактический синтаксический анализ для каждого шаблона (шаблонами являются либо ссылка с назначением видео, либо кнопка, которая открывает другое окно с содержимым видео, либо кнопка, которая выполняет javascript, который динамически загружает видео в текущее окно)

Комментарии:

1. могу ли я загрузить видео в пользовательский веб-браузер с помощью функции webbrowse, а затем каким-то образом получить исходный код загруженной в данный момент страницы и перейти оттуда? это может быть более эффективно, чем использование самого URL для получения исходного кода?

2. Я говорил о разборе исходного кода, а не URL. Вы сказали, что в исходном видео нет прямой ссылки, но вместо этого есть ссылка на другую страницу, где вы должны нажать кнопку, чтобы загрузить видео. Я сомневаюсь, что вам действительно нужен какой-либо браузер, чтобы прочитать исходный код веб-страницы. строка getPageSource(строковый URL) { System.Net.WebClient WebClient = new System.Net.WebClient(); string strSource = WebClient. DownloadString(URL); WebClient. Dispose(); возвращает strSource; }

3. Извините за форматирование… или, скорее, его отсутствие. Итак, вкратце, что означает мой ответ: действительно ли стоит тратить часы на написание парсеров исходного кода HTML для получения видео? Сделать это полностью автоматизированным будет непросто.

Ответ №3:

 Dim PictureURL As String = "http://www.bing.com"   New System.Net.WebClient().DownloadString("http://www.bing.com/HPImageArchive.aspx?format=rssamp;idx=0amp;n=1amp;mkt=de-DE").Replace("<link>", "|").Replace("</link>", "|").Split("|")(3)