Загрузите HTML-файл и конвертируйте его в TXT - PullRequest
3 голосов
/ 18 августа 2011

Я пишу программу на C #. Мне нужно знать, есть ли возможность открыть URL сайта и искать ключевые слова в тексте. Например, если моя программа получает URL http://www.google.com и ключевое слово "gmail" это вернет истину. Поэтому для заключения мне нужно знать, есть ли способ перейти к URL-адресу, скачать HTML-файл, преобразовать его в текст, чтобы я мог искать свое ключевое слово.

Ответы [ 5 ]

2 голосов
/ 18 августа 2011

Звучит так, будто вы хотите удалить все теги HTML и затем выполнить поиск в полученном тексте.

Моя первая реакция заключалась в использовании регулярного выражения:

String result = Regex.Replace(htmlDocument, @"<[^>]*>", String.Empty);

Бесстыдно украл это: Использование регулярных выражений C # для удаления тегов HTML

Что предполагает HTML Agility Pack , который звучит точно так же, как вы ищете.

1 голос
/ 18 августа 2011

Вы должны быть в состоянии открыть файл HTML как есть.Файлы HTML имеют открытый текст, это означает, что для чтения файла должно быть достаточно FileStream и StreamReader.

Если вы действительно хотите, чтобы файл был .txt, вы можете просто сохранить файл как filename.txtвместо filename.html при загрузке.

1 голос
/ 18 августа 2011

В Visual Basic это работает:

Imports System
Imports System.IO
Imports System.Net

Function MakeRequest(ByVal url As String) As String
    Dim request As WebRequest = WebRequest.Create(url)
    ' If required by the server, set the credentials. '
    request.Credentials = CredentialCache.DefaultCredentials
    ' Get the response. '
    Dim response As HttpWebResponse = CType(request.GetResponse(), HttpWebResponse)
    ' Get the stream containing content returned by the server. '
    Dim dataStream As Stream = response.GetResponseStream()
    ' Open the stream using a StreamReader for easy access. '
    Dim reader As New StreamReader(dataStream)
    Dim text As String = reader.ReadToEnd

    Return text
End Function

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

0 голосов
/ 24 января 2017
using (WebClient client = new WebClient()) 
{
   client.DownloadFile("http://example.com", @"D:\filename.txt");
}
0 голосов
/ 18 августа 2011

Не используйте регулярные выражения для анализа html, так как html довольно сложен для регулярных выражений.Проверьте обсуждение SO на этом

RegEx совпадать с открытыми тегами, за исключением автономных тегов XHTML

Использовать вместо этого уже реализованные парсеры HTML для этой цели.

Вот еще одно обсуждение SO, где вы можете найти нужные вам ссылки

Поиск C # HTML-парсера

Поиск также в Интернете самостоятельно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...