Обнаружьте место назначения сокращенного, или “крошечного” URL

Я только что очистил набор данных Живой Ленты Google, и я хочу знать, какие сообщения Шума ссылаются на те же новостные статьи. Проблема состоит в том, что многие ссылки в этих сообщениях были изменены URL shorteners, таким образом, могло иметь место что много отличных сокращенных URL на самом деле вся точка к той же новостной статье.

Учитывая, что у меня есть миллионы сообщений, к чему самый эффективный путь (предпочтительно в Python) для меня

  1. обнаружьте, является ли URL сокращенный URL (от какой-либо из многих услуг по сокращению URL или по крайней мере самого большого)
  2. Найдите "место назначения" сокращенного URL, т.е. долгую, исходную версию сокращенного URL.

Кто-либо знает, налагает ли URL shorteners строгие ограничения скорости запроса? Если я подавляю это к 100/второй (вся ближайшая форма тот же IP-адрес), Вы думаете, что я столкнусь с проблемой?

UPDATE & PRELIMINARY SOLUTION Ответы привели к к следующему простому решению

import urllib2
response = urllib2.urlopen("http://bit.ly/AoifeMcL_ID3") # Some shortened url
url_destination = response.url

Именно!

18
задан Bobby 29 June 2011 в 12:11
поделиться

3 ответа

Самый простой способ получить место назначения сокращенного URL - использовать urllib . Учитывая, что короткий URL-адрес действителен (код ответа 200), URL-адрес будет возвращен вам.

>>> import urllib
>>> resp = urllib.urlopen('http://bit.ly/bcFOko')
>>> resp.getcode()
200
>>> resp.url
'http://mrdoob.com/lab/javascript/harmony/'

Вот и все!

17
ответ дан 30 November 2019 в 08:47
поделиться

(AFAIK) Большинство укорачивателей URL отслеживают уже сокращенные урлы, поэтому несколько запросов к одному и тому же движку с одним и тем же URL вернут один и тот же короткий код.

Как было предложено, лучший способ извлечь настоящий URL - это прочитать заголовки из ответа на запрос сокращенного URL. Однако некоторые сервисы сокращения (например, bit.ly) предоставляют метод API для возврата длинного url

3
ответ дан 30 November 2019 в 08:47
поделиться
  1. Составьте список наиболее используемых URL-сократителей и расширяйте его, открывая новые, затем проверьте ссылку для одного элемента списка.

  2. Вы не знаете, куда ведет URL, пока не пройдете по нему, поэтому лучшим способом сделать это будет пройти по сокращенному url и извлечь http-заголовок ответа, чтобы увидеть, куда он ведет.

Думаю, при 100 запросах в секунду у вас могут возникнуть проблемы (самое худшее, что может случиться, это занесение вашего IP в черный список спамеров).

1
ответ дан 30 November 2019 в 08:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: