Разные результаты для одного и того же RSS-канала, полученного от разных пользовательских агентов.

Если я добавлю URL-адрес канала в Google Reader или агрегатор каналов на рабочем столе, я получу хорошие результаты. URL-адрес:

http://estaticos03.marca.com/rss/futbol_1adivision.xml

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

Я полагаю, что на стороне сервера что-то делается, чтобы отбить у таких людей, как я, охоту анализировать контент для моих собственных проектов (лента взята из популярной футбольной газеты), но я не уверен в этом. Я пытался передать некоторые пользовательские агенты (например, читатель Google), но все равно не повезло, так что, может быть, они также проверяют IP? Я действительно смущен.

Любая идея, почему это происходит со мной?

Спасибо!


person nabucosound    schedule 09.01.2011    source источник
comment
Может у них спросить? И как они могут проверить IP. Ваш браузер и ваш скрипт Python имеют один и тот же IP-адрес. :)   -  person Lennart Regebro    schedule 10.01.2011
comment
Если бы я спросил их, я не думаю, что они ответили бы мне в любом случае. А насчет IP вы правы но может они сначала проверяют юзер агент и если это скажем гугл ридер, то могли бы и IP проверить. Но я не думаю, что они настолько изощренны...   -  person nabucosound    schedule 10.01.2011
comment
не могли бы вы предоставить URL-адрес RSS, к которому вы пытаетесь получить доступ? Мне было бы интересно посмотреть, что происходит.   -  person smilbandit    schedule 10.01.2011
comment
Конечно, я обновил вопрос с URL-адресом   -  person nabucosound    schedule 12.01.2011
comment
Следующим улучшением вопроса будет вставка вашего скрипта feedparser. Кроме того, как насчет необработанного текста, который получает Python? Выглядит ли он более полным, чем то, что вы получаете от feedparser?   -  person TryPyPy    schedule 12.01.2011


Ответы (3)


Насколько я знаю, Google Reader творит «волшебство» с контентом, чтобы украсить его. Они удаляют некоторые теги и стили, чтобы не нарушать их интерфейс.

Можете ли вы предоставить более подробную информацию о различиях?

person David Poblador i Garcia    schedule 09.01.2011
comment
Нет, это не связано с украшением контента. Заголовок совершенно другой, если я извлекаю его из Google Reader или NewsFire (настольный ридер), а не из моего скрипта Python (он короче и в верхнем регистре). Это единственная разница, которую я вижу до сих пор, но это сводит меня с ума. Заголовок, отображаемый Google Reader, не существует в результатах моего скрипта Python, поэтому я предполагаю, что сервер RSS позволяет Google Reader и NewsFire использовать более удобный источник каналов, чем я... - person nabucosound; 10.01.2011

Вы изменили пользовательский агент вашего скрипта? Попробуйте имитировать Firefox и посмотреть, что произойдет.

person Esteban Feldman    schedule 10.01.2011
comment
Да пробовал, например FeedFetcher-Google; (+google.com/feedfetcher.html) или Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:2.0b8) Gecko/20100101 Firefox/4.0b8, но безуспешно... - person nabucosound; 12.01.2011

Ладно, ребята, я нашел это. Я проанализировал полученный исходный XML (как @TryPyPy). Я слишком доверял библиотеке feedparser. В последней официальной версии (4.1) есть ошибка, связанная с ошибкой тега title из пространства имен мультимедиа вместо оригинального:

http://code.google.com/p/feedparser/issues/detail?id=76

Так что я переустановил из багажника, и теперь все в порядке. Спасибо за помощь в любом случае!

person nabucosound    schedule 12.01.2011