Страницы: 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 :)
 
Да ты можешь :)
Лучше автору напиши, возможно ли желаемое.
 
Кода не увидел в файле.
Все можно,только представляться всегда надо правильно.
Код
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Function UseGoogle() As String
    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 такого универсального не написать
а вы пробовали, прежде чем это написать?
Код
1
ResponseHeaders$ = wHTTP.GetAllResponseHeaders
 
Цитата
Игорь пишет: а вы пробовали, прежде чем это написать?
в отличие от некоторых - всегда пробую понять, прежде чем писать (в силу своих знаний)
и отвечаю так же полно (в силу своих знаний)

p.s. не хотите делиться инфо... берите на слабо себя
Изменено: JeyCi - 20.12.2014 20:01:13
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
 
встречался (и был адаптирован) такой вариант, но такое ощущение, что не все заголовки отображает
Код
1
2
3
4
5
6
7
8
9
10
11
12
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
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
Читают тему
Наверх
Loading...