Доброй ночи, форумчане! помогите превратить [ссылка удалена] в код http://pastebin.com/aRfD2SJY (в txt файл или в string, без разницы) сайт вроде на яве сделан
Первая ссылка ведет к игрушке, вторая - к коду html, О макросах - только в заглавии темы. Потому и вопрос. Если я озаглавлю тему "Фотошоп на макросах", это не значит, что такое осуществимо.
как можно без ссылки? там именно определенный сайт, который нужно запарсить запарсить через WinHttpRequest или через MSXML2.ServerXMLHTTP не получается, потому что они выдают не код страницы, а кучу мусора (из-за того, что страница на яве написана, я так думаю) другие сайты нормально парсятся этими методами. но именно по той ссылке, что я написал - не хочет поэтому я хочу узнать альтернативный метод а показывать код на любом другом сайте не имеет смысла, потому что он может на другом работать, а на этом, что был по ссылке не сработать да и смысл рекламить всем известный сайт в своей тематике на форуме спецов по экселю.. если та ссылка на игру не подходит - могу дать на любую другую, хоть на Doom 95 года. его то уж не надо рекламить если нужно - могу сделать на примере файла, чтобы ссылки не светить...
Вам виднее, можно ли отобразить в файле. Так и надо было сделать. 1. Послать людей по ссылкам, одна из которых долго грузится. 2. Показать пример в файле. Помощь быстрее придет по какому варианту?
прикрепил файл в сообщение #7 можно и не грузить ссылки. первую можно сразу отдать на обработку в макрос а вторая просто для примера что должно получиться. если ее долго грузить - то говорю, что там должно получиться не 500 строк, а 2500 потому что многие команды выдают код на 500 строк, который фактически неправильный
Кода не увидел в файле. Все можно,только представляться всегда надо правильно.
Код
Function UseGoogle() As String
URL$ = "http://www.ag.ru/games/last-of-us"
Dim XMLHTTP, ADOStream, FileName
On Error Resume Next
Set XMLHTTP = CreateObject("Microsoft.XMLHTTP")
XMLHTTP.Open "Get", URL$, "False"
XMLHTTP.setRequestHeader "Accept-Encoding", "gzip,deflate"
XMLHTTP.setRequestHeader "user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)"
XMLHTTP.setRequestHeader "Accept-Language", "ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3"
XMLHTTP.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
XMLHTTP.send
If XMLHTTP.statustext = "OK" Or XMLHTTP.Status = 200 Then
Debug.Print XMLHTTP.responseText
UseGoogle = XMLHTTP.responseText
End If
Set XMLHTTP = Nothing
End Function
Если результат нужен в ячейках, - можно использовать веб-запрос (на ленте ДАННЫЕ - ИЗ ИНТЕРНЕТА. вводите ссылку, жмёте ПУСК, выбираете нужную таблицу, жмёте ИМПОРТ)
А если надо скачать страницу, выбрать из неё нужные данные, и вывести красивую табличку в Excel, причем без единой строки кода, — есть готовое решение: http://excelvba.ru/programmes/Parser (там всё можно настроить под любой сайт)
Doober, спасибо за уделенное время, все работает Игорь, спасибо за предложение ber$erk, я сначала тоже хотел написать тоже самое, но был настолько глуп, что проверял код через вставку в ячейку. а она как раз режет до 500 строк, поэтому я и считал, что код не прорабатывает правильно. точно так же наверное вчера и пропустил подобные варианты кода пока гуглил, потому что тоже вставлял результат в ячейку для проверки
точно также и с моими имеющимися макросами. они все вставляют результат в ячейки для сравнения. и везде обрезалось до 500 строк, поэтому я и начал искать другие варианты. а при вторичной правильной проверке оказывается срабатывает любой код
я текст не из ячейки смотрел, а Immideate window. Там весь код целиком. Могу предположить, что процесс происходит так: 1) отправляется запрос на сайт 2) возвращается код страницы (макрос Doober-а) 3) браузер обрабатывает код страницы (прогоняет скрипты и формирует итоговую страницу) 4) браузер отрисовывает запрошенную страницу (код страницы из браузера)
если вдруг под рукой найдётся линк, где можно почитать как правильно, оставьте please в теме... а то спросить даже боязно, даже у Google, да и в теме... чувствуется, что ответ будет длинный :( ... но молчать долго сложно :oops: очень интересно поковырять эти строки, если знать о чём они... .setRequestHeader - это в смысле к той кодировке относится, которая обычно в начале html кода описывается на каждой странице??... P.S. или кода, например, GetHTTPResponse может быть достаточно - без объявления .setRequestHeader?
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
Первоначально в моем шаблоне статус текст был прописан,не срабатывало
Цитата
JeyCi пишет: может быть достаточно - без объявления .setRequestHeader?
Не всегда это проходит. Пошлю только в Википедию. Для парсинга использую: Fiddler - программа для перехвата и анализа трафика. В нем же просматриваю заголовки. SeaMonkey-хороший редактор html кода,Firefox-отличное дополнение -Web Developer. Остальное опыт от набитых шишок за несколько лет.
хорошее место... хоть пока и непонятное... спасибо! оказывается даже из chrome можно взять заголовки: "Если вы пользуетесь браузером Chrome, просмотреть всю информацию можно, нажав на кнопку настройки - инструменты - инструменты разработчика. Вкладка networks." (ПКМ-->Copy Request Headers)
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
оказывается, в PHP вообще одним словом можно достать заголовки - getallheaders ... жаль на vba такого универсального не написать, чтобы MsgBoх'ом выкинуть по заголовкам... остаётся подсматривать в Fiddler
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
встречался (и был адаптирован) такой вариант, но такое ощущение, что не все заголовки отображает
Код
Function GetHeader(sURL As String) As String
Dim oXHTTP As Object
Set oXHTTP = CreateObject("MSXML2.XMLHTTP")
oXHTTP.Open "HEAD", sURL, False
oXHTTP.send
GetHeader = oXHTTP.getAllResponseHeaders()
End Function
Sub test()
Dim sURL As String
sURL = "http://www.cmegroup.com/trading/fx/g10/euro-fx_quotes_settlements_options.html?exchange=XCME&productCd=6EH4&underlyingContract=6E&floorContractCd=ECH4&expMonth=201403&prodid="
MsgBox GetHeader(sURL)
End Sub
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
про ошибки ... отсюда ...на память ... оказывается, уже первая цифра статуса скажет о многом... ранее она бы мне ничего не сказала
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
Doober. я не сомневаюсь - но мне понравилось, что здесь так коротенько - выучить хоть бы 5 цифр - и то буду подсматривать - голова забита другим - не запомню всё ввиду нечастого использования... а так картинка хорошая в теме
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)