Как сделать чекер редиректов? Хочу ввести URL открыть сайт и посмотреть какой конечный URL откроется Например http://site-start.com/ редиректит через несколько редиректов на http://site-finish.com/ В результате хочу получить сайт начальный и конечный URL так например начальный_адрес;конечный_адрес http://site-start.com/;http://site-finish.com/ http://site-start111.com/;http://site-finish111.com/ http://site-start222.com/;http://site-finish222.com/ http://site-start333.com/;http://site-finish333.com/
Настроил парсер как описано в топике: http://a-parser.com/threads/2579/ На выходе получил список редиректов. Вторым шагом нужно настроить парсер дабы пройтись по редиректам и сохранить конечные урлы. Но редиректы не разворачиваются до конечного урла, в результатах указан сам линк редиректа. Сетуя на свою неопытность, решил проверить верно ли я настроил парсер. Сделал несколько редиректов на своих доменах - все отлично отрабатывает. Но почему не разворачиваются отпарсенные редиректы? Несколько для примера: Спойлер Код: http://rd.bizrate.com/rd?t=http%3A%2F%2Fwww.amazon.com%2Fdp%2F1517558484%2Fref%3Dasc_df_15175584844347746%3Fsmid%3DATVPDKIKX0DER%26tag%3Dshopzilla0d-20%26ascsubtag%3Dshopzilla_rev_455-20%3BSZ_REDIRECT_ID%26linkCode%3Ddf0%26creative%3D395093%26creativeASIN%3D1517558484&mid=184056&cat_id=8019&atom=10123&prod_id=&oid=6548697350&pos=1&b_id=18&bid_type=4&bamt=45e4b920dcffc474&cobrand=106&ppr=3f00892ac6a6ac53&mpid=1517558484&rf=afp&af_assettype_id=12&af_creative_id=2932&af_id=614987&af_placement_id=1799&af_rid=4ec1536c21f7bf07a6bb1dc30aa09296 http://rd.bizrate.com/rd?t=http%3A%2F%2Fwww.amazon.com%2Fdp%2F1505653975%2Fref%3Dasc_df_15056539754347746%3Fsmid%3DATVPDKIKX0DER%26tag%3Dshopzilla0d-20%26ascsubtag%3Dshopzilla_rev_439-20%3BSZ_REDIRECT_ID%26linkCode%3Ddf0%26creative%3D395093%26creativeASIN%3D1505653975&mid=184056&cat_id=8013&atom=10117&prod_id=&oid=6139886632&pos=1&b_id=18&bid_type=4&bamt=16a79e2eedbc1695&cobrand=106&ppr=25943d5813c3c19e&mpid=1505653975&rf=afp&af_assettype_id=12&af_creative_id=2932&af_id=614987&af_placement_id=1799&af_rid=2164dafffcfa0251bff5d4d5c054cc5e http://rd.bizrate.com/rd?t=http%3A%2F%2Fwww.amazon.com%2Fdp%2F1517558484%2Fref%3Dasc_df_15175584844347746%3Fsmid%3DATVPDKIKX0DER%26tag%3Dshopzilla0d-20%26ascsubtag%3Dshopzilla_rev_455-20%3BSZ_REDIRECT_ID%26linkCode%3Ddf0%26creative%3D395093%26creativeASIN%3D1517558484&mid=184056&cat_id=8019&atom=10123&prod_id=&oid=6548697350&pos=1&b_id=18&bid_type=4&bamt=45e4b920dcffc474&cobrand=106&ppr=3f00892ac6a6ac53&mpid=1517558484&rf=afp&af_assettype_id=12&af_creative_id=2932&af_id=614987&af_placement_id=1799&af_rid=8184d04b463a8a8e88c7fa87896ef3ec http://rd.bizrate.com/rd?t=http%3A%2F%2Fwww.amazon.com%2Fdp%2FB00HJYVNSS%2Fref%3Dasc_df_B00HJYVNSS4366417%3Fsmid%3DATVPDKIKX0DER%26tag%3Dshopzilla0d-20%26ascsubtag%3Dshopzilla_rev_529-20%3BSZ_REDIRECT_ID%26linkCode%3Ddf0%26creative%3D395093%26creativeASIN%3DB00HJYVNSS&mid=184056&cat_id=5107&atom=10077&prod_id=&oid=6105014828&pos=1&b_id=18&bid_type=4&bamt=8086a9d9f3c0e3ef&cobrand=106&ppr=9c0e4e74c45c187b&mpid=B00HJYVNSS&brandId=275190&rf=afp&af_assettype_id=12&af_creative_id=2932&af_id=614987&af_placement_id=1799&af_rid=8adba3a82b5ef7fd38fea75d48534480 http://rd.bizrate.com/rd?t=http%3A%2F%2Fwww.amazon.com%2Fdp%2F190923608X%2Fref%3Dasc_df_190923608X4347746%3Fsmid%3DATVPDKIKX0DER%26tag%3Dshopzilla0d-20%26ascsubtag%3Dshopzilla_rev_482-20%3BSZ_REDIRECT_ID%26linkCode%3Ddf0%26creative%3D395093%26creativeASIN%3D190923608X&mid=184056&cat_id=8098&atom=10201&prod_id=&oid=6110228306&pos=1&b_id=18&bid_type=4&bamt=45e4b920dcffc474&cobrand=106&ppr=cb35632318de1cac&mpid=190923608X&rf=afp&af_assettype_id=12&af_creative_id=2932&af_id=614987&af_placement_id=1799&af_rid=e344968630b4ae27fcaaadf4dfc8fd22
Потому что первый редирект осуществляется яваскриптом: Спойлер Спойлер Код: 200 OK set-cookie: trafficSourceDebugParam=""; Domain=.bizrate.com; Expires=Thu, 01-Jan-1970 00:00:10 GMT; Path=/,yes_email_invite=invite-dhtml-timed-delay; Domain=.bizrate.com; Expires=Tue, 28-Jun-2016 07:28:16 GMT; Path=/,sessionid=520331959842046870; Domain=.bizrate.com; Expires=Tue, 28-Jun-2016 07:28:16 GMT; Path=/,cnx_sessionid=520331959842046870; Domain=.bizrate.com; Expires=Tue, 28-Jun-2016 07:28:16 GMT; Path=/,br=14670124967865592437602030301027572; Domain=.bizrate.com; Expires=Thu, 25-Jun-2026 07:28:16 GMT; Path=/,_data=_time%3A%3Astart_time%3D1467012496%3Btimestamp%3D1467012496%7Ctracker%3A%3Ahtcnt%3D1%3Brf%3Dafp%3Brf2%3D%3Bvsc%3Ddar%3Baf_id%3D614987%3Baf_assettype_id%3D12%3Baf_creative_id%3D2932%3Baf_placement_id%3D1799; Domain=.bizrate.com; Expires=Tue, 28-Jun-2016 07:28:16 GMT; Path=/,p13n_id=00013fe8e11164784b3696970c44c73ce5ac; Domain=.bizrate.com; Expires=Thu, 25-Jun-2026 07:28:16 GMT; Path=/,rng=5542223; Domain=.bizrate.com; Expires=Tue, 28-Jun-2016 07:28:16 GMT; Path=/,roi_cookie=14670124965580699157210090301008005%7C184056; Domain=.bizrate.com; Expires=Wed, 27-Jul-2016 07:28:16 GMT; Path=/ date: Mon, 27 Jun 2016 07:28:16 GMT transfer-encoding: chunked content-type: text/html;charset=UTF-8 content-language: en-US server: Apache-Coyote/1.1 p3p: CP="NON DSP ADM DEV PSD TAI OUR IND STP PRE NAV UNI" <?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <meta name="referrer" content="origin" /> </head> <body> <noscript> <meta http-equiv="refresh" content="1; url=http://rd.connexity.net/rd?mid=184056&cat_id=8019&atom=10123&prod_id=&oid=6548697350&pos=1&b_id=18&bid_type=4&bamt=45e4b920dcffc474&cobrand=106&ppr=3f00892ac6a6ac53&mpid=1517558484&af_assettype_id=12&af_creative_id=2932&af_id=614987&af_placement_id=1799&af_rid=4ec1536c21f7bf07a6bb1dc30aa09296&t=http%3A%2F%2Fwww.amazon.com%2Fdp%2F1517558484%2Fref%3Dasc_df_15175584844347746%3Fsmid%3DATVPDKIKX0DER%26tag%3Dshopzilla0d-20%26ascsubtag%3Dshopzilla_rev_455-20%3B14670124965580699157210090301008005%26linkCode%3Ddf0%26creative%3D395093%26creativeASIN%3D1517558484&br=14670124967865592437602030301027572&rf=afp&vsc=dar&rdrSerial=41231e88-8a76-497f-b936-4e21a7367c22" /> </noscript> <input id="targetUrl" type="hidden" value="http://rd.connexity.net/rd?mid=184056&cat_id=8019&atom=10123&prod_id=&oid=6548697350&pos=1&b_id=18&bid_type=4&bamt=45e4b920dcffc474&cobrand=106&ppr=3f00892ac6a6ac53&mpid=1517558484&af_assettype_id=12&af_creative_id=2932&af_id=614987&af_placement_id=1799&af_rid=4ec1536c21f7bf07a6bb1dc30aa09296&t=http%3A%2F%2Fwww.amazon.com%2Fdp%2F1517558484%2Fref%3Dasc_df_15175584844347746%3Fsmid%3DATVPDKIKX0DER%26tag%3Dshopzilla0d-20%26ascsubtag%3Dshopzilla_rev_455-20%3B14670124965580699157210090301008005%26linkCode%3Ddf0%26creative%3D395093%26creativeASIN%3D1517558484&br=14670124967865592437602030301027572&rf=afp&vsc=dar&rdrSerial=41231e88-8a76-497f-b936-4e21a7367c22" /> <script type="text/javascript"> var url = document.getElementById('targetUrl') ? document.getElementById('targetUrl').value : ''; document.location.replace(url); </script> </body> </html>
Все верно. Но JS редиректит на примерно такой линк: http://rd.connexity.net/rd?mid=184056&cat_id=8019&atom=10123&prod_id=&oid=6548697350&pos=1&b_id=18&bid_type=4&bamt=45e4b920dcffc474&cobrand=106&ppr=3f00892ac6a6ac53&mpid=1517558484&af_assettype_id=12&af_creative_id=2932&af_id=614987&af_placement_id=1799&af_rid=4ec1536c21f7bf07a6bb1dc30aa09296&t=http%3A%2F%2Fwww.amazon.com%2Fdp%2F1517558484%2Fref%3Dasc_df_15175584844347746%3Fsmid%3DATVPDKIKX0DER%26tag%3Dshopzilla0d-20%26ascsubtag%3Dshopzilla_rev_455-20%3B14670140946000919983910080301008005%26linkCode%3Ddf0%26creative%3D395093%26creativeASIN%3D1517558484&br=14670140946301012853802010301020021&rf=afp&vsc=dar&rdrSerial=bdc258b2-fcae-4a00-a807-1981de923850 И уже если перейти по этой ссылке, то мы попадем на конечную страницу. Т.к. JS на страницах на данный момент в А-Парсере не обрабатывается, то, как вариант, можно пойти таким путем: Переходим по имеющейся у нас ссылке Забираем регуляркой ссылку промежуточного редиректа Подставляем ее в запрос И уже перейдя по ней получаем конечный адрес. Пресет для данной задачи будет выглядеть так: Спойлер: Код для импорта Код: eyJwcmVzZXQiOiJkZWZhdWx0IiwidmFsdWUiOnsicHJlc2V0IjoiZGVmYXVsdCIs InBhcnNlcnMiOltbIk5ldDo6SFRUUCIsImRlZmF1bHQiLHsidHlwZSI6ImN1c3Rv bVJlc3VsdCIsInJlc3VsdCI6ImRhdGEiLCJyZWdleCI6InZhbHVlPVwiKC4rPylc IiIsInJlZ2V4VHlwZSI6IiIsInJlc3VsdFR5cGUiOiJmbGF0IiwiYXJyYXlOYW1l IjoiIiwicmVzdWx0cyI6WyJyZCJdfV1dLCJyZXN1bHRzRm9ybWF0IjoiWyUgSUYg cXVlcnkubHZsID09IDA7XG5cdHRvb2xzLnF1ZXJ5LmFkZChwMS5yZCk7XG5FTFNF O1xuXHRwMS5yZXNwb25zZS5VUkkgXyBcIlxcblwiO1xuRU5EICVdIiwicmVzdWx0 c1NhdmVUbyI6ImZpbGUiLCJyZXN1bHRzRmlsZU5hbWUiOiIkZGF0ZWZpbGUuZm9y bWF0KCkudHh0IiwiYWRkaXRpb25hbEZvcm1hdHMiOltdLCJyZXN1bHRzVW5pcXVl Ijoibm8iLCJxdWVyeUZvcm1hdCI6WyIkcXVlcnkiXSwidW5pcXVlUXVlcmllcyI6 ZmFsc2UsInNhdmVGYWlsZWRRdWVyaWVzIjpmYWxzZSwiaXRlcmF0b3JPcHRpb25z Ijp7Im9uQWxsTGV2ZWxzIjpmYWxzZSwicXVlcnlCdWlsZGVyc0FmdGVySXRlcmF0 b3IiOmZhbHNlLCJxdWVyeUJ1aWxkZXJzT25BbGxMZXZlbHMiOmZhbHNlfSwicmVz dWx0c09wdGlvbnMiOnsib3ZlcndyaXRlIjpmYWxzZX0sImRvTG9nIjoibm8iLCJr ZWVwVW5pcXVlIjoiTm8iLCJtb3JlT3B0aW9ucyI6ZmFsc2UsInJlc3VsdHNQcmVw ZW5kIjoiIiwicmVzdWx0c0FwcGVuZCI6IiIsInF1ZXJ5QnVpbGRlcnMiOltdLCJy ZXN1bHRzQnVpbGRlcnMiOlt7InNvdXJjZSI6WzAsInJkIl0sInR5cGUiOiJkZWNv ZGVIdG1sIiwidG8iOiJyZCJ9XSwiY29uZmlnT3ZlcnJpZGVzIjpbXSwicnVuVGFz a09uQ29tcGxldGUiOm51bGwsInVzZVJlc3VsdHNGaWxlQXNRdWVyaWVzRmlsZSI6 ZmFsc2UsInJ1blRhc2tPbkNvbXBsZXRlQ29uZmlnIjoiZGVmYXVsdCIsInRvb2xz SlMiOiIifX0= Спойлер: Пример результата https://www.amazon.com/BABY-NAMES-Collection-Original-Meanings/dp/1517558484/189-8621500-0281648?ie=UTF8&ascsubtag=shopzilla_rev_455-20%3B14670148667040921422310070301008005&creative=395093&creativeASIN=1517558484&linkCode=df0&ref_=asc_df_15175584844347746&smid=ATVPDKIKX0DER&tag=shopzilla0d-20 https://www.amazon.com/Sherlock-Holmes-Game-Shadows-Blu-ray/dp/B00HJYVNSS/189-5315354-9381139?ie=UTF8&ascsubtag=shopzilla_rev_529-20%3B14670148650430542647810090302008005&creative=395093&creativeASIN=B00HJYVNSS&linkCode=df0&ref_=asc_df_B00HJYVNSS4366417&smid=ATVPDKIKX0DER&tag=shopzilla0d-20 https://www.amazon.com/Simpler-Guide-Gmail-unofficial-setting/dp/190923608X/182-5744651-3313403?ie=UTF8&ascsubtag=shopzilla_rev_482-20%3B14670148675210540116510080302008005&creative=395093&creativeASIN=190923608X&linkCode=df0&ref_=asc_df_190923608X4347746&smid=ATVPDKIKX0DER&tag=shopzilla0d-20 https://www.amazon.com/Thrift-Wars-Battle-Tested-Internet-Arbitrage/dp/1505653975/191-0046171-3262275?ie=UTF8&ascsubtag=shopzilla_rev_439-20%3B14670148675520921396510080301008005&creative=395093&creativeASIN=1505653975&linkCode=df0&ref_=asc_df_15056539754347746&smid=ATVPDKIKX0DER&tag=shopzilla0d-20 https://www.amazon.com/BABY-NAMES-Collection-Original-Meanings/dp/1517558484/184-5511056-2690334?ie=UTF8&ascsubtag=shopzilla_rev_455-20%3B14670148656820921421110070301008005&creative=395093&creativeASIN=1517558484&linkCode=df0&ref_=asc_df_15175584844347746&smid=ATVPDKIKX0DER&tag=shopzilla0d-20 Но, можно пойти и другим путем. Извлекайте из полученных ссылок регуляркой (например такой: t=(.+?)& ) конечный адрес редиректа. После извлечения он будет выглядеть примерно так: http%3A%2F%2Fwww.amazon.com%2Fdp%2F1517558484%2Fref%3Dasc_df_15175584844347746%3Fsmid%3DATVPDKIKX0DER%26tag%3Dshopzilla0d-20%26ascsubtag%3Dshopzilla_rev_455-20%3BSZ_REDIRECT_ID%26linkCode%3Ddf0%26creative%3D395093%26creativeASIN%3D1517558484 Чтобы декодировать этот линк в привычный вид, нужно воспользоваться простеньким JS скриптом в А-Парсере: Код: Tools.prototype.decodeURI = function(str) { return decodeURIComponent(str); } В общем это будет выглядеть так: Второй вариант позволяет обойтись без второго задания, т.к. сразу на выходе первого будут нужные линки.