Скрипт для Greasemonkey для извлечения ASIN с amazon.com

Работу можно получить, даже если часовая ставка в 4 раза превышает ту, что хочет заказчик

Сегодня (вернее, уже вчера) мне попался заказчик, которому нужен был скрипт для Greasemonkey, который бы мог вытаскивать ASIN из URL'ов на amazon.com и отображать их. Задачка довольно простая, но подобный тип задач встречается довольно часто. Поэтому привожу готовое решение. // ==UserScript== // @name Amazon ASIN Extractor // @namespace http://sjinks.org.ua/ // @include http://www.amazon.com/* // @include http://amazon.com/* [...]

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

Автор: ; опубликовано в: JavaScript; метки: Greasemonkey, JavaScript, XPath
8
Апр
2008

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

  1. [...] я уже приводил пример скрипта для извлечения ASIN с amazon.com. Здесь используется нечто [...]

  2. Anon

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

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

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

  4. Mazzy

    А как он работает?
    Не пойму что с ним делать.
    Инсталлировал в Greasemonkey.
    Зашел например на http://www.amazon.com/dp/B0001VSA3M
    Greasemonkey не показывает никакие команды.

    А можете написать серверный скрипт, который обходит все урлы /dp/*
    и складывает асины в файл, ну или на экран?

    • С тех пор поменялся формат записей. Старое выражение XPath не подходит.

    • Я немного изменил скрипт:

      [-]
      Download asin2.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, "ns_")]/a[contains(@href, "/gp/product/")])|(//strong[@class="sans"]/a[contains(@href, "/gp/product/")])|(//td[@class="dataColumn"]//td/a[contains(@href, "/gp/product/")])',
          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(/\/gp\/product\/([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]));
              div.style.lineHeight = '1em';
              div.style.position = 'relative';
              div.style.background = '#FFF';
              a.parentNode.insertBefore(div, a.nextSibling);
          }
      }

      Поставьте и зайдите на amazon.com, увидите ASIN’ы

Пожалуйста, не используйте эту форму для комментирования! Данная форма предназначена исключительно для ботов.

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

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

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

गते गते पारगते पारसंगते बोधि स्वाहा