1

Twitter タイムライン用に開発している Web サイトにタイムライン機能を実装したいと考えています。私が持っているオプションの 1 つは、クロール可能で、Twitter の設定の「ウィジェット:

<a class="twitter-timeline"  href="https://twitter.com/hyttetomter" data-widget-id="289297710840954880">Tweets by @hyttetomter</a>
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>

コードはまず XHTML の有効なスクリプトではないため、プラグインまたはスクリプトを探したところ、CSS 用にカスタマイズできるjQuery 用の Tweet というプラグインが見つかりましたが、このクローラーは使いやすいですか? クロール可能なスクリプトとそうでないスクリプトを区別する技術は何ですか? 自分で確認するには、JavaScript を無効にするだけでよいでしょうか? jQuery コンテンツは常にクロール可能ですか? また、jQuery で生成された独自のコンテンツをクロール可能にするには、どのようなアクションを実行する必要がありますか? これに関してオンラインでさまざまな参考文献を見つけたので、助けになると思われる場合は、信頼できるリソースに誘導してください.

4

1 に答える 1

2

Crawlers fetch HTML pages. That is their only functions. They get the name of your stylesheets and javascripts because they are part of your HTML document head (as link and script tags) but their purpose is neither to style the pages nor enhance the behaviour. They fetch HTML static information and parse in order to make assumptions about its content. If your content is being generated after a javascript trigger, then the crawlers are not going to get it.

One solution to make it crawler-friendly is to make a fallback for them. But this has to involve rendering your twitter information on the server-side. Facebook does this:

<noscript>
  <meta http-equiv="refresh" content="0; URL=/home.php?_fb_noscript=1" />
</noscript>

Facebook inserts this meta tag in its document header. It is only triggered for noscript cases (hence, crawlers), and refreshes the page with the given url, which in the facebook case means "render the wall on the server-side, dude doesn't have javascript". Of course, crawlers have to know how to proceed with this tag.

于 2013-01-10T10:15:08.377 に答える