Сегодня (вернее, уже вчера) мне попался заказчик, которому нужен был скрипт для Greasemonkey, который бы мог вытаскивать ASIN из URL'ов на amazon.com и отображать их.

Задачка довольно простая, но подобный тип задач встречается довольно часто. Поэтому привожу готовое решение.

[-]
Download asin.user.js
// ==UserScript==
// @name          Amazon ASIN Extractor
// @namespace     http://sjinks.org.ua/
// @include       http://www.amazon.com/*
// @include       http://amazon.com/*
// ==/UserScript==

var links = document.evaluate(
    '(//div[contains(@id, "title_")]/a[contains(@href, "/dp/")])|(//strong[@class="sans"]/a[contains(@href, "/dp/")])|(//td[@class="dataColumn"]//td/a[contains(@href, "/dp/")])',
    document,
    null,
    XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,
    null
);

for (var i=0; i<links.snapshotLength; ++i) {
    var a    = links.snapshotItem(i);
    var href = a.getAttribute('href');
    var t = href.match(/\/dp\/([A-Z0-9]{10})\//);
    if ('undefined' != typeof t[1] && 10 == t[1].length) {
        var div = document.createElement('div');
        var strong = document.createElement('strong');
        strong.appendChild(document.createTextNode('ASIN: '));
        div.appendChild(strong);
        div.appendChild(document.createTextNode(t[1]));
        a.parentNode.insertBefore(div, a.nextSibling);
    }
}

Для модификации для другого сайта просто меняется XPath внутри document.evaluate(), @include, регулярное выражение в href.match() и проверка в if.

Verbum sapienti sat est…

Добавить в закладки
  • del.ici.ous
  • Digg
  • Furl
  • Google
  • Simpy
  • Spurl
  • Y! MyWeb
  • БобрДобр
  • Мистер Вонг
  • Яндекс.Закладки
  • Текст 2.0
  • News2
  • AddScoop
  • RuSpace
  • RUmarkz
  • Memori
  • Закладки Google
  • Писали
  • СМИ 2
  • Моё Место
  • Сто Закладок
  • Ваау!
  • Technorati
  • RuCity
  • LinkStore
  • NewsLand
  • Lopas
  • Закладки - I.UA
  • Connotea
  • Bibsonomy
  • Trucking Bookmarks
  • Communizm
  • UCA

Связанные записи

8
Апр
2008

Комментарии к статье «Скрипт для Greasemonkey для извлечения ASIN с amazon.com» (3)  »

  1. Anon says:

    скрипт режет абистоп до одной цитаты

  2. Vladimir says:

    Я так понимаю, что комментарий не к той статье? :-)

    По поводу BOR: я поправил скрипт, чтобы он не трогал abysstop/abyssbest — структура страницы на них немного другая.

    На мой взгляд, Бездна уныла чуть менее, чем полностью, вследствие чего я её не читаю, и скрипт я на ней не тестировал.

Подписаться на RSS-ленту комментариев к статье «Скрипт для Greasemonkey для извлечения ASIN с amazon.com» Trackback URL: http://blog.sjinks.org.ua/javascript/78-script-for-greasemonkey-to-extract-asin-from-amazon/trackback/

Оставить комментарий к записи «Скрипт для Greasemonkey для извлечения ASIN с amazon.com»

Вы можете использовать данные тэги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Оставляя комментарий, Вы выражаете своё согласие с Правилами комментирования.

Подписаться, не комментируя