Я только что очистил набор данных Живой Ленты Google, и я хочу знать, какие сообщения Шума ссылаются на те же новостные статьи. Проблема состоит в том, что многие ссылки в этих сообщениях были изменены URL shorteners, таким образом, могло иметь место что много отличных сокращенных URL на самом деле вся точка к той же новостной статье.
Учитывая, что у меня есть миллионы сообщений, к чему самый эффективный путь (предпочтительно в Python) для меня
Кто-либо знает, налагает ли URL shorteners строгие ограничения скорости запроса? Если я подавляю это к 100/второй (вся ближайшая форма тот же IP-адрес), Вы думаете, что я столкнусь с проблемой?
UPDATE & PRELIMINARY SOLUTION Ответы привели к к следующему простому решению
import urllib2
response = urllib2.urlopen("http://bit.ly/AoifeMcL_ID3") # Some shortened url
url_destination = response.url
Именно!
Самый простой способ получить место назначения сокращенного 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/'
Вот и все!
(AFAIK) Большинство укорачивателей URL отслеживают уже сокращенные урлы, поэтому несколько запросов к одному и тому же движку с одним и тем же URL вернут один и тот же короткий код.
Как было предложено, лучший способ извлечь настоящий URL - это прочитать заголовки из ответа на запрос сокращенного URL. Однако некоторые сервисы сокращения (например, bit.ly) предоставляют метод API для возврата длинного url
Составьте список наиболее используемых URL-сократителей и расширяйте его, открывая новые, затем проверьте ссылку для одного элемента списка.
Вы не знаете, куда ведет URL, пока не пройдете по нему, поэтому лучшим способом сделать это будет пройти по сокращенному url и извлечь http-заголовок ответа, чтобы увидеть, куда он ведет.
Думаю, при 100 запросах в секунду у вас могут возникнуть проблемы (самое худшее, что может случиться, это занесение вашего IP в черный список спамеров).