Задать вопрос

Как распарсить сайт госзакупок?

Добрый день, есть один сайт госзакупок - zakupki.gov.ru
Есть задача от руководства написать на дотнете приложение, чтобы, грубо говоря, видеть в окне приложения список лотов за определенные даты, по дефолту со вчерашней по сегодняшную.
Затем пролистывать этот список, отмечать интересующие лоты, а потом одной кнопочкой получить список ссылок на них.
Допустим, открываем эту ссылку, получаем список заявок.
Смотрим в исходный код, видим там интересную строку:
За ней идёт много ещё более интересных строк: , каждая из которых, вестимо, есть отдельный лот в списке.
Теперь вопрос, в какую сторону мне копать и что читать, учитывая, что я не представляю как это распарсить и не имею никакого представления о дотнете? Помогите пожалуйста.
Собираюсь сделать это на C#, потому что только с ним сталкивался пару лет назад, писал для фана и опыта калькуляторы с пятнашками.
  • Вопрос задан
  • 12729 просмотров
Подписаться 4 Оценить 2 комментария
Пригласить эксперта
Ответы на вопрос 7
@Aleserche
developer
Ответ очень запоздалый, но всё же.
Более правильный вариант (если не самый правильный) использовать данные из открытой части сайта. Они размещаются на ftp.zakupki.gov.ru. Пароль и логин: free и free. В нем размещаются все данные xml.
По этой ссылке находятся документы, необходимые для работы с ООС (схемы, описание и пр.)
Ответ написан
fornit1917
@fornit1917
>видеть в окне приложения список лотов за определенные даты
Вставьте в окно WebView и отображайте в нем сайт госзакупок:)

А если серьезно, то берете класс System.Net.Http.HttpClient, с помощью него качаете исходный код страницы и среди "интересных строк" берете те, которые вам нужны.
"Интересные строки" - это html-разметка того, что вы видите в окне браузера когда на сайт заходите. Всю информацию, которую вы видите глазами, можно найти в этих самых "интересных строках". Просто выбирайте то что вам нужно и сохраняйте локально или выводите на экран, в зависимости от требований.
Ответ написан
Комментировать
Вам надо список ссылок получить? Может открыть WebView и подцепиться к событию перехода по ссылке, сохраняя её?
Ответ написан
ScorpLeX
@ScorpLeX
Ну алгоритм довольно простой:
  1. Грузим html страницу подставляя в урл даты orderPublishDateFrom=25.11.2013&orderPublishDateTo=27.11.2013
  2. Собираем regexp'ом id новых зазкзов например так /common_info\/show?source=epz&notificationId=(.?*)"/
  3. Формируем ссылки и выводим\сохраняем.
Ответ написан
Комментировать
@leclecovich
Прежде всего, @fornit1917 прав насчет того, что нужно получить веб-страницу. А вот парсить регулярками - не лучшая идея. Можно посмотреть на CsQuery, удобная библиотека, легко ставится через NuGet.
Ответ написан
Комментировать
mezastel
@mezastel
Финансовая математика, программирование
Если вы понятия не имеете как делать, советую нанять тех, кто умеет. Будет очень недешево, правда, но зато не придется мучаться. Data acquisition - это искусство.
Ответ написан
@fragolino
Вот уже готовый парсер продается zakupki-online.site
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы