2013-04-01 2 views
3

Я пытаюсь загрузить страницу с бесконечным прокруткой при получении обновлений. Я нашел URL-адрес источника ajax. Когда я помещаю его в браузер, он отлично работает и возвращает данные формата json. Но когда я пытаюсь загрузить страницу через wget, я получаю сообщение Access denied. Вы не знаете, почему это происходит?бесконечный свиток - как очистить сайт

команда, я использую это:

wget --cookies=on --load-cookies=cookies.txt --keep-session-cookies --user-agent=Firefox \ 
    "https://www.somesite.com/ajax/pagelet/generic.php/pagination?data={"collection_token":"...","cursor":"...","tab_key":"....","profile_id":"...","overview":"...","ftid":"null","sk":"..."}&__user=...&__a=1" 
+0

Невозможно ответить только с данными. – wRAR

+0

Сохраняемый файл имеет следующее: для (;;); {"__ ar": 1, "error": 1357001, "errorSummary": "Niet aangemeld", "errorDescription": "Meld je aan om door te gaan. "," payload ": {" __ dialog ": {" title ": {" __ html ":" Niet aangemeld "}," body ": {" __ html ":" Meld je anan om door te gaan. "} , "кнопки": [{ "имя": "логин", "метка": "Aanmelden", "обработчик": "goURI (\" HTTP: \\\/\\\/www.facebook.com \\\ /login.php \ ", true);"}], "modal": true, "onloadRegister": ["setInterval (function() {\ n if (getCookie (\" c_user \ ") || getCookie (\ cms \ ")) {\ n window.location.reload(); \ n}}, 5000);"]}}, "js": ["kQ5UI", "PIiAz"] – evi

ответ

0

С одной стороны, у вас есть квотирование проблемы. URL содержит двойные кавычки, поэтому вам нужно либо сбежать от них с помощью обратных косых черт, либо окружить URL с помощью одиночных кавычек.

wget --cookies=on --load-cookies=cookies.txt --keep-session-cookies --user-agent=Firefox \ 
    'https://www.somesite.com/ajax/pagelet/generic.php/pagination?data={"collection_token":"...","cursor":"...","tab_key":"....","profile_id":"...","overview":"...","ftid":"null","sk":"..."}&__user=...&__a=1' 
+0

Я попробовал оба с обратной косой чертой ошибка 500 Внутренняя ошибка сервера – evi

-1

При использовании wget вы отправляете запрос GET на страницу, но AJAX использует запрос POST. Как вы используете python, используя urllib2 для создания запроса POST обычно делает трюк. Дайте мне знать, если вам нужна дополнительная помощь.

+1

AJAX также может выполнять запросы GET – BlackBear

+0

Благодарим вас за быстрые ответы, я также попробовал следующее, но я получил «Нет объекта JSON, который может быть декодирован: ответ строки 1 столбца 0 (char 0)». импорт simplejson импорт URLLIB импорта urllib2 PARAMS = { "collection_token":»... "" Курсор ":" ... "" tab_key ":" ... "" profile_id ":". .. »,« обзор »:« ... »,« ftid »:« ... »,« sk »:« ... »} url = 'https://www.somesite.com/ajax/ pagelet/generic.php /...?__ user = 541551551 & __ a = 1 ' data = urllib.urlencode (params) response = urllib2.urlopen (url, data) json_response = simplejson.loads (response.read()) – evi

1

Два способа сделать это.

Одним из них является рендеринг дерева DOM страницы в webkit с использованием библиотеки, такой как PhantomJs, и прокрутки страницы перед выполнением оценки.

Второй метод, чтобы выяснить, шаблон в фоновом режиме Ajax вызова и вызвать фактическое AJAX заканчивается точка

Смежные вопросы