Не удается открыть Twitter с помощью URL-адреса Google App Engine - PullRequest
0 голосов
/ 31 марта 2010

Я пытаюсь получить URL-адреса с помощью службы urlFetch в Google App Engine и создать прокси-сайт. Сайты, такие как Twitter и Facebook, выглядят изуродованными, как будто им не хватает таблицы стилей, даже у Google отсутствует логотип Google, но у Yahoo все нормально, я не понимаю, почему.

1 Ответ

1 голос
/ 31 марта 2010

Когда вы используете urlfetch, он выбирает HTML-код страницы, и ни один из изображений, CSS, JavaScript или любых других ресурсов.

Yahoo выглядит хорошо, предположительно, потому что они определяют свои изображения и CSS, используя абсолютные URL-адреса (например, http://www.yahoo.com/image.png),, поэтому, когда отображается страница urlfetch'd, она включает в себя полные URL-адреса изображений с yahoo.com. Имейте в виду, когда кто-то не имеет доступа к yahoo.com, эти изображения также не появятся на вашей прокси-странице.

edit: похоже, что Yahoo вставляет свой CSS в саму HTML-страницу, что объясняет, почему она работает в вашей извлеченной копии.

Google отображается без CSS / изображений, потому что их CSS / изображения указаны как относительные URL (например, /image.png), а у вашего прокси нет изображения в /image.png

.

Вам нужно будет проанализировать содержимое страницы urlfetch, чтобы найти изображения и CSS, которые также необходимо извлечь и проксировать. Обязательно обрабатывайте относительные URL-адреса, такие как /resource.png, а также абсолютные URL-адреса, такие как www.foo.com/resource.png.

.
...