Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
ProstoMad
49 / 39 / 5
Регистрация: 30.06.2010
Сообщений: 1,190
1

Получение страницы через cURL с учетом хэша в ссылке

03.06.2014, 07:22. Просмотров 600. Ответов 9
Метки нет (Все метки)

Загруш курлом страницу с гет параметрами, все получается. Но теперь появилась страница еще и с параметром после "#", а при загрузке стрницы курлом, почему то на параметр после # вообще не учитывается. Почему так происходит? Как это можно исправить?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.06.2014, 07:22
Ответы с готовыми решениями:

Curl парсинг страницы и подмена ссылок
Как мне в полученной странице пройтись по всем ссылкам и привести к такому...

Принцип отображения страницы пользователя по определенной ссылке
Здравствуйте, объясните мне пожалуйста, как осуществляется переход на страницу...

curl получение расширения
По курлу получаю изображение(тоесть в echo изображение открывается уже), но не...

Получение инфы с сайта используя curl и дальнейшая обработка информации
Нашел вот пример. <?php // Поиск книг на сервере amazon.com $url =...

Curl - отображение дизайна страницы
Здравствуйте, делаю паука который по дору ходит страницы генерит, но дизайн не...

9
crautcher
2019 / 1991 / 463
Регистрация: 27.05.2011
Сообщений: 6,837
03.06.2014, 12:29 2
А что исходный код страницы с #анкором отличается от исходного кода без?
0
MVS76
Не мoдepaтор
339 / 314 / 94
Регистрация: 07.07.2012
Сообщений: 1,015
Записей в блоге: 7
03.06.2014, 13:58 3
Цитата Сообщение от ProstoMad Посмотреть сообщение
Как это можно исправить?
Никак. Так как все что после #(хэш) формируется js-скриптом, а курл не умеет работать с js, соответственно, вы просто получаете шаблон страницы без самого контента.
0
ProstoMad
49 / 39 / 5
Регистрация: 30.06.2010
Сообщений: 1,190
03.06.2014, 16:51  [ТС] 4
crautcher, да, меняется. например торговая площадка в стиме.
MVS76, Должен же быть способ, хоть какой то.
0
crautcher
2019 / 1991 / 463
Регистрация: 27.05.2011
Сообщений: 6,837
03.06.2014, 16:55 5
Цитата Сообщение от ProstoMad Посмотреть сообщение
crautcher, да, меняется. например торговая площадка в стиме.
Можно прямой линк, что-то мне не верится.
0
MVS76
Не мoдepaтор
339 / 314 / 94
Регистрация: 07.07.2012
Сообщений: 1,015
Записей в блоге: 7
03.06.2014, 17:20 6
Цитата Сообщение от ProstoMad Посмотреть сообщение
Должен же быть способ, хоть какой то.
Ну да, найдите у них копию HTML страницы, ту которая для поисковых ботов предназначена, ее и парсите.
Найти можно отключив в браузере яваскрипт
0
ProstoMad
49 / 39 / 5
Регистрация: 30.06.2010
Сообщений: 1,190
03.06.2014, 20:19  [ТС] 7
crautcher, http://steamcommunity.com/market/search?l=russian#p2_quantity_desc
Если вводить эту строку в браузер, то всё работает, если писать в курл, то показываются предметы, расположенные на первой странице

Добавлено через 4 минуты
MVS76, Отключил яваскрипт, страницы вообще не листаются. номера страниц пропали, остались только неработающие стрелки "<" и ">"

Добавлено через 2 часа 43 минуты
и если отключить его, то и в навигации по страницам, страницы отсутствуют, а в курле они есть
0
MVS76
Не мoдepaтор
339 / 314 / 94
Регистрация: 07.07.2012
Сообщений: 1,015
Записей в блоге: 7
03.06.2014, 20:34 8
Просмотрев сайт, Я лично не увидел выхода.
Может кто-то другой поможет решить ваш вопрос.
0
pav1uxa
1857 / 1711 / 802
Регистрация: 23.01.2014
Сообщений: 6,082
Завершенные тесты: 1
03.06.2014, 22:44 9
ProstoMad, Тут надо больше в jQuery разбираться чем в php... Всю инфу они грузят с помощью него. Хеш они определяют тут
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
function HandleHashChange( bClearResults )
    {
        if ( window.location.hash.length > 2 && window.location.hash.substr(0,2) == "#p" )
        {
            var elParts = window.location.hash.substr(2).split('_');
 
            var nPage = parseInt( elParts[0] );
            var strNewSortColumn = elParts.length >= 3 ? elParts[1] : g_strSortColumn;
            var strNewSortDir = elParts.length >= 3 ? elParts[2] : g_strSortDir;
            var bSortingChanged = strNewSortColumn != g_strSortColumn || strNewSortDir != g_strSortDir;
 
            if ( nPage - 1 != g_oSearchResults.m_iCurrentPage || bSortingChanged )
            {
                g_strSortColumn = strNewSortColumn;
                g_strSortDir = strNewSortDir;
 
                if ( bClearResults )
                {
                    $('searchResultsRows').innerHTML = '';
                }
 
                g_oSearchResults.GoToPage( nPage - 1, bSortingChanged );
            }
        }
    }
Тут хорошо видно, что если присутствует хеш и первые 2 его символа равны "#p" (как и в нашем случае), то строки таблицы грузятся как то иначе, нежели без хеша. А именно, если там 2 то грузят следующие 10 страниц, если 3 то следующие и так далее... Если разобраться в jQuery то можно легко и с помощью php выбирать нужную инфу.
0
ProstoMad
49 / 39 / 5
Регистрация: 30.06.2010
Сообщений: 1,190
05.06.2014, 20:21  [ТС] 10
спасибо, решил проблему просто посмотрев, куда отправляется запрос.
0
05.06.2014, 20:21
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.06.2014, 20:21

Задать таймаут загрузки страницы cURL
Здравствуйте, уважаемые форумчане!:) Забираю страницу с помощью curl, но так...

CURL не выдает некоторые элементы страницы
Задача такая: заполнить html форму и отправить эти данные на сайт avito.ru. И...

CURL сохраняет в объект все страницы
Для того чтобы сохранить HTTP keep-alive, а не инициализировать каждый раз cURL...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru