Очистка экрана HTTPS с использованием C # - PullRequest
3 голосов
/ 04 декабря 2009

Как отсканировать экран HTTPS с помощью C #?

Ответы [ 5 ]

6 голосов
/ 04 декабря 2009

Вы можете использовать System.Net.WebClient для запуска HTTPS-соединения и перетащить страницу вниз, чтобы разобраться с этим.

5 голосов
/ 04 декабря 2009

Посмотрите на Html Agility Pack .

4 голосов
/ 04 декабря 2009

Вы можете использовать System.Net.WebClient для захвата веб-страниц. Вот пример: http://www.codersource.net/csharp_screen_scraping.html

2 голосов
/ 04 декабря 2009

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

1 голос
/ 23 октября 2015

Вот конкретный (хотя и тривиальный) пример. Вы можете передать название корабля в VesselFinder в строке запроса, но даже если он находит только один корабль с таким именем, он все равно показывает экран результатов поиска с одним кораблем. Этот пример обнаруживает этот случай и переносит пользователя прямо к карте отслеживания корабля.

        string strName = "SAFMARINE MAFADI";
        string strURL = "https://www.vesselfinder.com/vessels?name=" + HttpUtility.UrlEncode(strName);
        string strReturnURL = strURL;
        string strToSearch = "/?imo=";
        string strPage = string.Empty;
        byte[] aReqtHTML;


        WebClient objWebClient = new WebClient();
        objWebClient.Headers.Add("User-Agent: Other");   //You must do this or HTTPS won't work
        aReqtHTML = objWebClient.DownloadData(strURL);  //Do the name search
        UTF8Encoding utf8 = new UTF8Encoding();

        strPage = utf8.GetString(aReqtHTML); // get the string from the bytes

        if (strPage.IndexOf(strToSearch) != strPage.LastIndexOf(strToSearch))
        {
            //more than one instance found, so leave return URL as name search
        }
        else if (strPage.Contains(strToSearch) == true)
        {
            //find the ship's IMO 
            strPage = strPage.Substring(strPage.IndexOf(strToSearch)); //cut off the stuff before
            strPage = strPage.Substring(0, strPage.IndexOf("\"")); //cut off the stuff after

        }

        strReturnURL = "https://www.vesselfinder.com" + strPage;
...