Taberarelooでamazon
から写真をポストしようとしても、URLが画像のものになってしまうようです。こういうサイト毎の処理はTomblooから来ている(筈)ので、AmazonのHTMLとextractors.jsの処理を見比べてパッチしてみました。
拡大された写真の要素の親に
id="prodImageCell"はいないので、親の要素を修正します。***** extractors.js 327: check : function(ctx){ 328:- return Extractors.Amazon.preCheck(ctx) && $X('./ancestor::*[@id="prodImageCell"]', ctx.target)[0]; :+ return Extractors.Amazon.preCheck(ctx) && ($X('./ancestor::*[@id="main-image-relative-container"]', ctx.target)[0] :+ || $X('./ancestor::*[@id="iv-large-image"]', ctx.target)[0]); 329: },こちらはおまけ。製品写真の代替テキストをタイトルに埋め込むのですが、未定義だと
undefinedになってしまうのでチェックを追加します。***** extractors.js 313: ctx.href = this.normalizeUrl(ctx.host, this.getAsin(ctx)); 314:- ctx.title = 'Amazon: ' + $X('id("prodImage")/@alt', ctx.document)[0] + ': ' + ctx.document.title.split(/[::] */).slice(-2).shift(); :+ var pi = $X('id("prodImage")/@alt', ctx.document)[0]; :+ pi = (!! pi) ? pi + ': ' : ''; :+ ctx.title = 'Amazon: ' + pi + ctx.document.title.split(/[::] */).slice(-2).shift(); 315:これは製品写真の大きさを変えてしまうので、それを止めます。
***** extractors.js 340: width = ''; 341:- style.height = 'auto'; 342:- style.width = 'auto'; 343: }少し試験運用して、大丈夫そうなら、GitHubでpull requestしてみようかしら。