urlfetch.fetch получил пропущенный контент в теге сценария HTML в движке приложения - PullRequest
2 голосов
/ 22 февраля 2010

в моем приложении, когда я использую функцию urlfetch.fetch для извлечения указанного URL, я обнаружил, что полученное содержимое пусто для некоторых специальных HTML-кодов.

например, URL: http://www.club.cn.sodexo.com/node/5071 в реальном HTML-коде, коды включают в себя:

<div class="content">
<div style="width: 219px; height: 262px;" id="gmap-auto3map-gmap0" class="gmap-control gmap-gmap gmap gmap-map gmap-auto3map-gmap">Javascript is required to view this map.</div>
<script type="text/javascript">
/* <![CDATA[ */
jQuery.extend(true, Drupal, { settings: { "gmap": { "auto3map":{ "width": "219px", "height": "262px", "zoom": 16, "maxzoom": "17","controltype": "Large", "align": "None", "maptype": "Map", "mtc":"none", "baselayers": { "Map": 1, "Satellite": 1, "Hybrid": 1 },"styles": { "line_default": [ "0000ff", "5", "45", "", "" ],"poly_default": [ "000000", "3", "25", "ff0000", "45" ] },"line_colors": [ "#00cc00", "#ff0000", "#0000ff" ], "behavior":{ "autozoom": true }, "markermode": "0", "id": "auto3map", "latitude":"31.239132", "longitude": "121.483506", "markers": [ { "latitude":"31.239132", "longitude": "121.483506", "markername": "small red","offset": 0, "opts": { "title": "克莉丝汀食品(宁波路店)" }, "text": "\x3cdiv class=\"gmap-popup\"\x3e\x3c/div\x3e" } ] } } } });
/* ]]> */
</script>
</div> 

но из того, что я получил через url fetch: результат будет:

<div class="content">
<div style="width: 219px; height: 262px;" id="gmap-auto3map-gmap0" class="gmap-control gmap-gmap gmap gmap-map gmap-auto3map-gmap">Javascript is required view this map.</div>
<script type="text/javascript">
/* <![CDATA[ */
/* ]]> */
</script>

Все коды javascript между /* <![CDATA[ */ и /* ]]> */ пропущены, что так устроено. Кто-нибудь знает проблему? Можно ли исправить эту проблему?

1 Ответ

0 голосов
/ 31 марта 2011

Возможно, сервер вставляет другой javascript в зависимости от user-agent (т. Е. Другой код для Firefox в Internet Explorer), а для user-agent urlfetch сервер запутывается и вообще не вставляет javascript.

...