Sub Parser_LESA()
Dim OBJHTTP As Object
Dim Url$, Str$
Set OBJHTTP = CreateObject("MSXML2.XMLHTTP")
Url = "https://lesegais.ru/open-area/graphql"
With OBJHTTP
.Open "POST", Url, False
.setRequestHeader "Accept", "*/*"
.setRequestHeader "Accept-Encoding", "gzip, deflate, br"
.setRequestHeader "Accept-Language", "ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7"
.setRequestHeader "Connection", "keep-alive"
.setRequestHeader "Content-type", "application/json"
.setRequestHeader "User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36"
.send "{""query"":""query SearchContractLease($size: Int!, $number: Int!, $filter: Filter, $orders: [Order!]) {\n searchContractLease(filter: $filter, pageable: {number: $number, size: $size}, orders: $orders) {\n content {\n companyName\n inn\n dealDate\n constituentName\n forestryName\n subForestryName\n tractName\n forestBlockNumbers\n woodVolume\n __typename\n }\n __typename\n }\n}\n"",""variables"":{""size"":20,""number"":0,""filter"":null,""orders"":null},""operationName"":""SearchContractLease""}"
Str = .ResponseText
Debug.Print Str
End With
End Sub
номера страниц прописаны в ""number"":0 0 - это первая страница, вторая страница 1 и т.д.
Мастерство программиста не в том, чтобы писать программы, работающие без ошибок. А в том, чтобы писать программы, работающие при любом количестве ошибок.
Всё правильно в коде. Страница только тут ""number"":0.
Мастерство программиста не в том, чтобы писать программы, работающие без ошибок. А в том, чтобы писать программы, работающие при любом количестве ошибок.
Slava977 написал: У Вас получилось выгрузить таблицу в Excel?
Alemox, показал вам, как получить данные с сайта в формате Json. Разбор Json для вывода таблицей на лист это отдельная задача и вопрос - уже обсуждавшийся на форуме и тем более в интернете. Версия на Power Query (первые 200 строк). Alemox, большое спасибо за вводные данные POST запроса.
Андрей VG,Благодарю Вас. Что то новое узнаю для себя. Постараюсь разобраться. У мня было подозрение, что это PQ, но не мог понять куда он сохраняет файл. Вы мне прислали на языке М код. То есть VBA можно трансформировать в PQ? Я ещё не настолько спец. чтоб понимать простые решения. Цитата Рокфеллера. Я не настолько богат, чтоб покупать дешёвые вещи.
Во вложении макрос и пример. Нажать кнопку Загрузить и дождаться финального сообщения. Настроен на то, чтобы парсить последние три страницы указанного сайта. В коде можно поменять на большее количество страниц. У меня всё отлично работает.
Мастерство программиста не в том, чтобы писать программы, работающие без ошибок. А в том, чтобы писать программы, работающие при любом количестве ошибок.
Да Андрей я в курсе. Просто решил не вводить хаос в привычное количество, которое выгружается на сайте. Да и может надо-то только одну страницу, автор не указал. Оно наверное строками проще даже чем страницами, побыстрее соображает, не надо несколько раз направлять запросы. Думаю автор темы сам сможет уже поправить на количество строк, а не страниц.
Мастерство программиста не в том, чтобы писать программы, работающие без ошибок. А в том, чтобы писать программы, работающие при любом количестве ошибок.
Может будет вопрос не по теме, но мне не понятна запись https://lesegais.ru/open-area/graphql Ведь как я понимаю graphql это связанно с джава скриптом? А если мне предположим нужно взять с этого же сайта но с другого раздела? Просто стало интересно. То есть в коде, что то нужно поменять?
Мастерство программиста не в том, чтобы писать программы, работающие без ошибок. А в том, чтобы писать программы, работающие при любом количестве ошибок.
Добрый вечер! У меня спортивный интерес по парсингу. Вопрос в следующем пытаюсь подключиться к сайту Едадил https://edadeal.ru/moskva/retailers Код у меня получается в click? Помогите грамотно написать. В целом логику уловил, мне бы на другом примере, чтоб Вы продемонстрировали. Далее уже попробую сам. Заранее благодарен!
вот не знаю что еще добавить чтобы вытянуть цены и по возможности избавиться от кракозябриков?
Код
let
Source = Csv.Document(Web.Contents("https://api.edadeal.ru/web/localities/moskva/entities?retailer=5ka"),[Delimiter=",", Encoding=65001]),
Index = Table.AddIndexColumn(Source, "Индекс", 0, 1),
Filtered = Table.SelectRows(Index, each [Индекс] >= 1052 and [Индекс] <= 1058)
in
Filtered