|
|||||||
Как вытаскивать ASIN из URL'ов на amazon.com и отображать их
Время создания: 05.04.2012 01:20
Раздел: Компьютер - Программирование - Java Script - Greasymonkey
Запись: xintrea/mytetra_syncro/master/base/1333574453bg9kzbj7w4/text.html на raw.github.com
|
|||||||
|
|||||||
Сегодня (вернее, уже вчера) мне попался заказчик, которому нужен был скрипт для Greasemonkey, который бы мог вытаскивать ASIN из URL'ов на amazon.com и отображать их. Задачка довольно простая, но подобный тип задач встречается довольно часто. Поэтому привожу готовое решение. // ==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. |
|||||||
Так же в этом разделе:
|
|||||||
|
|||||||
|