AlHal2 Ответов: 1

Скачать со страницы, которая использует javascript (динамически генерируется)


Как загрузить данные с этой страницы?
http://www.cmegroup.com/trading/agricultural/spot-call-data.html
Я попробовал следующее, Но это только кажется, что дает заголовки.
Если его можно загрузить с помощью пакетного файла, это было бы здорово. В противном случае .NET-это нормально. Я использую Visual Studio 2010.


Значения под таблицей извлекаются с помощью Java-скрипта на основе выбранной торговой даты, поэтому они являются динамическими значениями и поэтому не могут быть видны при открытии на текстовой панели.
Как я могу получить значения в таблице?

Что я уже пробовал:

Dim uriString As String = "http://www.cmegroup.com/trading/agricultural/spot-call-data.html"
        ' Create a new WebClient instance.
        Dim myWebClient As New WebClient()

        Console.WriteLine(("Searching " + uriString + " ......."))

        myWebClient.DownloadFile(uriString, "C:\temp\searchresult.htm")

F-ES Sitecore

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

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

1 Ответов

Рейтинг:
10

Graeme_Grant

Доступ к данным веб-сайта без разрешения не является этичным. Но я объясню, как это сделать в образовательных целях.

Данные хранятся в частичных загрузках. Чтобы увидеть их, загрузите страницу в Google Chrome, затем откройте инструменты разработчика и выберите вкладку Сеть. Это делается для того, чтобы вы могли наблюдать за движением. Теперь измените выбор выпадающего списка и дождитесь изменения данных. После завершения прокрутите временную шкалу до тех пор, пока не увидите опрошенные данные. Выберите записи на временной шкале, и теперь вы можете видеть запросы. Они должны выглядеть примерно так:

http://www.cmegroup.com/CmeWS/mvc/xsltTransformer.do?xlstDoc=/XSLT/md/spotcall_Cheese.xsl&url=/da/Clearing/SpotCallProducts?date=09/07/2017

http://www.cmegroup.com/CmeWS/mvc/xsltTransformer.do?xlstDoc=/XSLT/md/spotcall_NonfatDryMilk.xsl&url=/da/Clearing/SpotCallProducts?date=09/07/2017

http://www.cmegroup.com/CmeWS/mvc/xsltTransformer.do?xlstDoc=/XSLT/md/spotcall_Butter.xsl&url=/da/Clearing/SpotCallProducts?date=09/07/2017

Теперь вы можете открыть новую вкладку Google Chrome и попробовать каждую ссылку, теперь у вас есть доступ к отформатированным данным. Вам нужно будет удалить html-элементы из данных.

Чтобы узнать, когда данные обновятся, вам нужно будет опросить исходную страницу и извлечь даты из выпадающего списка.

Вот поиск в Google, чтобы: как извлечь данные из html-страницы с помощью c# - Google Search[^]- похоже, это поможет: c# - извлечение данных с веб-страницы, их разбор на определенные фрагменты и отображение - переполнение стека[^].

А вот версия поиска VB: как извлечь данные из html-страницы с помощью vb -
поиск Google
[^] что дает нам это: Извлечение конкретной html-строки из исходного кода html (веб-сайта) в vb.net -переполнение стека[^]