Iron Web Scraper - Войти - PullRequest
       32

Iron Web Scraper - Войти

0 голосов
/ 10 апреля 2019

Я прочитал учебные пособия для входа на веб-сайт до его очистки, но он просто не работает. Я сконструировал объект HttpIdentity, добавил его в коллекцию Identities и обработал запрос, но страница, возвращенная для очистки, все еще была страницей входа. Об этом не так много на их сайте и в документации. Вот мой код для этого:

var identity = new HttpIdentity
        {
            UseCookies = true,
            NetworkUsername = _username,
            NetworkPassword = _password
        };

        Identities.Add(identity);

        Request(_uri, Parse, identity);

В методе Parse я получаю объект Response, возвращенный с кодом состояния 200, а свойство Response WasSuccessful - "true". Кажется, я должен быть перенаправлен на страницу, к которой я пытался получить доступ, но я только что получил html для входа.

Я что-то упускаю?

1 Ответ

0 голосов
/ 11 апреля 2019

Мне не удалось найти решение с помощью Iron Web Scraper, но я смог сделать это с помощью ScrapySharp, которая является бесплатной утилитой, поэтому она сработала. ScrapySharp может до некоторой степени имитировать браузер, поэтому навигация и отправка форм довольно просты.

var browser = new ScrapingBrowser();

var homepage = browser.NavigateToPage(_Uri); // login Uri

var form = homepage.FindForm("login"); // get form by name

form.Method = HttpVerb.Post;

form["username"] = "my_username"; // get form fields by id
form["password"] = "my_password";

var resultPage = form.Submit(); // login

var loggedInPage = browser.NavigateToPage(new Uri("https://path.to.target.page"));

И это все. Я не уверен, в чем проблема с Iron Web Scraper. Может быть, какой-нибудь ajax на странице входа. В любом случае, этот код работает для меня сейчас.

...