Общий подход таков:
- с помощью такого инструмента, как Fiddler , выясните, какие HTTP-запросы выполняются браузером для получения данных, которые вы ищете.
- используйте WebClient для получения необходимых HTTP-запросов.
Посмотрите на мой ответ на этот вопрос , чтобы получить дополнительную информацию об очистке экрана HTML для получения дополнительной информации и о том, как обойти различные проблемы, с которыми вы можете столкнуться.
Для # 1 выше, как использовать fiddler, чтобы понять, как делается конкретный запрос:
Сначала найдите запрос, который вас интересует (запрос, содержащий данные, которые вы хотите получить в своем ответе). Это можно сделать, проверив каждый запрос, дважды щелкнув его на левой панели в fiddler и заглянув внутрь вкладки «text fiew» в нижней правой панели. Вы также можете использовать сочетание клавиш CTRL + F для поиска содержимого по нескольким запросам, но некоторые запросы сжимаются, поэтому перед выполнением запросов вы должны убедиться, что кнопка «автокодирование» выбрана на панели инструментов, если вы хотите быть уверены, что можете отправлять текстовые сообщения. искать по всем из них.
Как только вы нашли нужный запрос, дважды щелкните его в Fiddler и выберите вкладку «заголовки» в правой верхней панели. Это отправляемые заголовки. Если ваш клиент отправляет именно эти заголовки на сервер, вы должны получить те же данные. Но обычно не все заголовки необходимы, поэтому вы захотите выяснить, какие из них нужны. Это можно сделать с помощью вкладки «Построитель запросов» Fiddler в правой верхней панели. Выберите эту вкладку и перетащите запрос данных с левой панели на построитель запросов. Затем отправьте запрос, чтобы подтвердить, что он возвращает правильные результаты. Затем начните удалять заголовки, один заголовок за раз, пока запрос не перестанет работать - вы знаете, что этот заголовок был необходим. Попробуйте удалить каждый заголовок, пока не найдете те, которые необходимы.
Затем вам нужно написать код для генерации правильного заголовка. Не беспокойтесь о заголовке Host:
, который генерируется автоматически для вас. Для заголовка Cookie:
вам необходимо сгенерировать его, используя класс CookieContainer
. Для других заголовков (например, UserAgent :, Accept: и т. Д. Вы обычно можете скопировать их и добавить их в свой запрос как есть.