2

私のアプリでは、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>

/* <![CDATA[ */との間のすべての JavaScript コード/* ]]> */が欠落しており、非常に配線されています。誰でも問題を知っていますか?この問題を修正することは可能ですか?

4

1 に答える 1

0

おそらく、サーバーはユーザー エージェントに基づいて異なる JavaScript を挿入し (つまり、Firefox と Internet Explorer では異なるコード)、urlfetchユーザー エージェントの場合、サーバーは混乱し、JavaScript をまったく挿入しません。

于 2011-03-31T03:49:34.050 に答える