Страницы: 1
RSS
изъять код html страницы макросом
 
Доброй ночи, форумчане!
помогите превратить [ссылка удалена] в код http://pastebin.com/aRfD2SJY  (в txt файл или в string, без разницы)
сайт вроде на яве сделан

Спасибо.
Изменено: Петр80 - 19.12.2014 02:01:32
 
При чем здесь Excel?
 
как причем. на vba макросах же
сохранить код страницы, имея ссылку
Изменено: Петр80 - 19.12.2014 01:54:27
 
Первая ссылка ведет к игрушке, вторая - к коду html,
О макросах - только в заглавии темы. Потому и вопрос.
Если я озаглавлю тему "Фотошоп на макросах", это не значит, что такое осуществимо.
 
вторая ссылка - и есть код страницы из первой ссылки
а как лучше назвать тему? "изъять код html страницы макросом" ?
Изменено: Петр80 - 19.12.2014 02:00:34
 
Ссылку на игру удалил. Реклама? Не реклама? Грузится очень долго...
Без ссылки можно как-то что-то объяснить? Пример, может быть...

Ждите специалистов. Если сообщат, что то, что Вы хотите, возможно и для этого нужна ссылка - показывайте.
 
как можно без ссылки? там именно определенный сайт, который нужно запарсить
запарсить через WinHttpRequest или через MSXML2.ServerXMLHTTP не получается, потому что они выдают не код страницы, а кучу мусора (из-за того, что страница на яве написана, я так думаю)
другие сайты нормально парсятся этими методами. но именно по той ссылке, что я написал - не хочет
поэтому я хочу узнать альтернативный метод
а показывать код на любом другом сайте не имеет смысла, потому что он может на другом работать, а на этом, что был по ссылке не сработать
да и смысл рекламить всем известный сайт в своей тематике на форуме спецов по экселю..
если та ссылка на игру не подходит - могу дать на любую другую, хоть на Doom 95 года. его то уж не надо рекламить
если нужно - могу сделать на примере файла, чтобы ссылки не светить...
Изменено: Петр80 - 19.12.2014 02:58:28
 
Вам виднее, можно ли отобразить в файле. Так и надо было сделать.
1. Послать людей по ссылкам, одна из которых долго грузится.
2. Показать пример в файле.
Помощь быстрее придет по какому варианту?
 
прикрепил файл в сообщение #7
можно и не грузить ссылки. первую можно сразу отдать на обработку в макрос
а вторая просто для примера что должно получиться.
если ее долго грузить - то говорю, что там должно получиться не 500 строк, а 2500
потому что многие команды выдают код на 500 строк, который фактически неправильный
Изменено: Петр80 - 19.12.2014 02:22:35
 
Цитата
vikttur пишет:
Если я озаглавлю тему "Фотошоп на макросах", это не значит, что такое осуществимо.
Виктор, а я управлял фотошопом при помощи vba с Excel :)
 
Да ты можешь :)
Лучше автору напиши, возможно ли желаемое.
 
Кода не увидел в файле.
Все можно,только представляться всегда надо правильно.
Код
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-а?
Учимся сами и помогаем другим...
 
Doober, спасибо за уделенное время, все работает
Игорь, спасибо за предложение
ber$erk, я сначала тоже хотел написать тоже самое, но был настолько глуп, что проверял код через вставку в ячейку. а она как раз режет до 500 строк, поэтому я и считал, что код не прорабатывает правильно. точно так же наверное вчера и пропустил подобные варианты кода пока гуглил, потому что тоже вставлял результат в ячейку для проверки

точно также и с моими имеющимися макросами. они все вставляют результат в ячейки для сравнения. и везде обрезалось до 500 строк, поэтому я и начал искать другие варианты.  а при вторичной правильной проверке оказывается срабатывает любой код
Изменено: Петр80 - 19.12.2014 08:34:15
 
я текст не из ячейки смотрел, а Immideate window. Там весь код целиком.
Могу предположить, что процесс происходит так:
1) отправляется запрос на сайт
2) возвращается код страницы (макрос Doober-а)
3) браузер обрабатывает код страницы (прогоняет скрипты и формирует итоговую страницу)
4) браузер отрисовывает запрошенную страницу (код страницы из браузера)

Прошу поправить, если я что-то не так понял.
Учимся сами и помогаем другим...
 
Цитата
ber$erk пишет: Там весь код целиком
у  Immideate window тоже есть ограничения по количеству символов
лично у меня оно выдает всего 200 последних строк, а первые 2300 обрезает
Изменено: Петр80 - 19.12.2014 11:47:12
 
точно. сразу не обратил внимание. Т. е. все идентично
Учимся сами и помогаем другим...
 
Цитата
Doober пишет: If XMLHTTP.statustext = "OK" Or XMLHTTP.Status = 200
А какой смысл данного участка кода?
There is no knowledge that is not power
 
Цитата
Doober пишет: Все можно,только представляться всегда надо правильно.
вы имеете ввиду этот фрагмент?
Цитата
Doober пишет: 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"
если вдруг под рукой найдётся линк, где можно почитать как правильно, оставьте please в теме... а то спросить даже боязно, даже у Google, да и в теме... чувствуется, что ответ будет длинный  :(  ... но молчать долго сложно   :oops:   очень интересно поковырять эти строки, если знать о чём они... .setRequestHeader - это в смысле к той кодировке относится, которая обычно в начале html кода описывается на каждой странице??...
P.S. или кода, например, GetHTTPResponse  может быть достаточно - без объявления .setRequestHeader?
Изменено: JeyCi - 19.12.2014 11:37:03
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
 
Цитата
Johny пишет:
А какой смысл данного участка кода?
Первоначально в моем шаблоне статус текст был прописан,не срабатывало


Цитата

JeyCi пишет:
может быть достаточно - без объявления .setRequestHeader?
Не всегда это проходит.
Пошлю только в Википедию.
Для парсинга использую:
Fiddler -  программа для перехвата и анализа трафика.
В нем же просматриваю заголовки.
SeaMonkey-хороший редактор html кода,Firefox-отличное дополнение -Web Developer.
Остальное опыт от набитых шишок за несколько лет.

PS:Очень люблю посылать в гугл
Изменено: Doober - 19.12.2014 14:22:48
 
Цитата
Doober пишет: Первоначально в моем шаблоне статус текст был прописан,не срабатывало
Ну и зачем его тогда проверять, когда есть код статуса?  :)
There is no knowledge that is not power
 
Цитата
Doober пишет: Пошлю только в Википедию .
хорошее место... хоть пока и непонятное... спасибо!  :)  
оказывается даже из chrome можно взять заголовки:
"Если вы пользуетесь браузером Chrome, просмотреть всю информацию можно, нажав на кнопку настройки - инструменты - инструменты разработчика. Вкладка networks." (ПКМ-->Copy Request Headers)
Изменено: JeyCi - 20.12.2014 16:42:11
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
 
оказывается, в PHP вообще одним словом можно достать заголовки - getallheaders
... жаль на vba такого универсального не написать, чтобы MsgBoх'ом выкинуть по заголовкам...
остаётся подсматривать в Fiddler
Изменено: JeyCi - 20.12.2014 16:53:09
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
 
Цитата
в PHP вообще одним словом можно достать заголовки - getallheaders
... жаль на vba такого универсального не написать
а вы пробовали, прежде чем это написать?
Код
ResponseHeaders$ = wHTTP.GetAllResponseHeaders 
 
Цитата
Игорь пишет: а вы пробовали, прежде чем это написать?
в отличие от некоторых - всегда пробую понять, прежде чем писать (в силу своих знаний)
и отвечаю так же полно (в силу своих знаний)

p.s. не хотите делиться инфо... берите на слабо себя
Изменено: JeyCi - 20.12.2014 20:01:13
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
 
встречался (и был адаптирован) такой вариант, но такое ощущение, что не все заголовки отображает
Код
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

P.S. встретился и ресурс (!!) для взятия заголовков...
и ещё про заголовки и про Http-методы
Изменено: JeyCi - 29.12.2014 13:07:40
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
 
про ошибки ... отсюда ...на память  8) ... оказывается, уже первая цифра статуса скажет о многом... ранее она бы мне ничего не сказала  
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
 
А я знаю больше кодов состояния  :D
 
Doober. я не сомневаюсь  :)   - но мне понравилось, что здесь так коротенько - выучить хоть бы 5 цифр - и то буду подсматривать - голова забита другим - не запомню всё ввиду нечастого использования... а так картинка хорошая в теме  
Изменено: JeyCi - 21.12.2014 01:51:12
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
Страницы: 1
Наверх