2015-04-13 2 views
0

Я работаю с обходом информации с веб-сайта: http://www.fatwallet.com
Существует много перенаправленных URL-адресов. Например: http://www.fatwallet.com/ticket/store/A4C?s=storepage
перенаправляется http://www.a4c.com/?siteID=.7WaaTN6umc-s1Ih0x_Q67n6r7gInoh6UgКак получить перенаправленный URL-адрес с помощью python? (CURLOPT_FOLLOWLOCATION не работает)

Я хотел бы использовать PHP, чтобы узнать перенаправлены URL.
Я использовал «curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true)». Я знаю, что он автоматически перенаправит 5 раз.

Однако проблема заключается в том, что страница, которую я получаю, не является последней страницей, вместо этого это страница между ними.

curl_exec возвращается:

HTTP/1.1 302 Moved Временно Сервер: Apache Адрес: www.fatwallet.com/interstitial/signin Vary: Accept-Encoding
Content-Encoding: GZIP Content-Length: 20 Content-Type: text/html Дата: Пн, 13 апр 2015 12:03:19 GMT Подключение: keep-alive
Set-Cookie: JSESSIONID = A9E28337052B56ADAC8451854A276210; Path = /; HttpOnly

HTTP/1.1 302 Moved Временно Сервер: Apache Адрес: www.fatwallet.com/interstitial/signin Vary: Accept-Encoding
Content-Encoding: GZIP Content-Length: 20 Content-Type: текст/HTML Дата: Пн, 13 апреля 2015 12:03:19 GMT Connection: Keep-жив

HTTP/1.1 200 OK Сервер: Apache Cache-Control: нет кэша, нет-магазин, макс возраста = 0 Истекает: ср, 31 дек. 1969 23:59:59 GMT
X-UA-совместимый: IE = edge, chrome = 1 Vary: User-Agent, Accept-Encoding
Content-Lan guage: en Content-Encoding: gzip Content-Type: text/html; charset = UTF-8 Content-Length: 16949 Дата: Пн, 13 апр 2015 12:03:20 GMT Подключение: keep-alive Set-Cookie: list_styles = сетка; Expires = Sat, 01-May-2083 15:17:27 GMT; Путь =/
Set-Cookie: non_mem = f86c0692-826f-40f2-9fa1-1e2f9a957af8; Истекает = Сб, 01-май-2083 15:17:27 GMT; Path =/............

Похоже, что третий перенаправленный код «HTTP/1.1 200 OK», но это не последняя страница. Если вы проверите http://www.fatwallet.com/ticket/store/A4C?s=storepage, вы поймете, что я имею в виду. Кроме того, нет способа найти окончательный URL-адрес на возвращенной странице.
Так что мой вопрос в том, может ли он сделать curl продолжать перенаправление, даже если он получает HTTP/1.1 200 OK?

Есть ли другой способ решить эту проблему (используя snoopy или python)?
Спасибо всем!

ответ

0

Кажется, что последний переадресация выполняется через JS, а не на собственный HTTP-ответ. Вам просто нужен более продвинутый искатель с функцией для выполнения JS-кода.

0

Просто увидеть исходный код первого Перенаправления (вид-источник: https://www.fatwallet.com/interstitial/signin), и вы найдете последнюю в некоторых HTML-элементах, кажется, что некоторые JS код читает эти значения и делает последний редирект

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