
22.09.2015, 12:55
|
|
Интересующийся
|
|
Регистрация: 22.09.2015
Сообщений: 11
|
|
|
Регулярные выражения
с помощью регулярных выражений надо вытащить из исходного кода название продукта. Это то что стоит в ковычках после слова title (т.е. "Leitz 24230095 Stehsammler, A4, Hartpappe, schwarz"):
<a class="a-link-normal s-access-detail-page a-text-normal" title="Leitz 24230095 Stehsammler, A4, Hartpappe, schwarz" href="http://www.amazon.de/Leitz-24230095-Stehsammler-Hartpappe schwarz/dp/B0007OEHFS/ref=sr_1_1?ie=UTF8&qid=1442901446&sr=8-1&keywords=Leitz+24230095"><h2 class="a-size-medium a-color-null s-inline s-access-title a-text-normal">Leitz 24230095 Stehsammler, A4, Hartpappe, schwarz</h2></a>
Примерно выражение выглядит так:
<a class=\"[^\"]*title\"(.*?)</a>
Но это выражение не работает. Помогите кто может! 
|
|

22.09.2015, 13:07
|
 |
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,155
|
|
|
antiwindows,
а зачем регулярка?
|
|

22.09.2015, 13:08
|
 |
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,155
|
|
antiwindows,
<a class="a-link-normal s-access-detail-page a-text-normal" title="Leitz 24230095 Stehsammler, A4, Hartpappe, schwarz" href="http://www.amazon.de/Leitz-24230095-Stehsammler-Hartpappe schwarz/dp/B0007OEHFS/ref=sr_1_1?ie=UTF8&qid=1442901446&sr=8-1&keywords=Leitz+24230095"><h2 class="a-size-medium a-color-null s-inline s-access-title a-text-normal">Leitz 24230095 Stehsammler, A4, Hartpappe, schwarz</h2></a>
<script>
alert(document.links[0].title);
</script>
|
|

22.09.2015, 13:20
|
|
Интересующийся
|
|
Регистрация: 22.09.2015
Сообщений: 11
|
|
|
Благодарю за быстрый ответ, но необходимо именно регулярное выражение. Результат должен выдаваться построчно.
var man_name = "Leitz";
var man_art_nr = "24230095";
var searchUrlAmazon = "http://www.amazon.de/s/ref=nb_sb_noss?url=search-alias%3Daps&field-keywords=";
var searchVar = encodeURI(man_name + " " + man_art_nr);
var amazonSite = loadURL(searchUrlAmazon + searchVar).replace(/\n/g,'').replace(/\r/g,'');
var amTitel = new RegExp('ЗДЕСЬ ДОЛЖНА СТОЯТЬ РЕГУЛЯРКА','g');
var match = amTitel.exec(amazonSite);
for (var i=0; i < 5; i++){
writeln('Titel: ' + match[1]);
fwrite(fh,'Titel: ' + match[1] + '\n');
match = amTitel.exec(amazonSite);
}
writeln("stop Titel");
writeln("\n");
|
|

22.09.2015, 13:28
|
 |
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,155
|
|
|
Сообщение от antiwindows
|
|
Результат должен выдаваться построчно.
|
не осилил ... в любом случае если вам нужно title ссылки нужды в регулярке нет.
|
|

22.09.2015, 13:31
|
 |
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,155
|
|
antiwindows,
var a = '<a class="a-link-normal s-access-detail-page a-text-normal" title="Leitz 24230095 Stehsammler, A4, Hartpappe, schwarz" href="http://www.amazon.de/Leitz-24230095-Stehsammler-Hartpappe schwarz/dp/B0007OEHFS/ref=sr_1_1?ie=UTF8&qid=1442901446&sr=8-1&keywords=Leitz+24230095"><h2 class="a-size-medium a-color-null s-inline s-access-title a-text-normal">Leitz 24230095 Stehsammler, A4, Hartpappe, schwarz</h2></a>'
var div = document.createElement('div');
div.innerHTML = a;
alert(div.querySelector('a').title);
|
|

22.09.2015, 14:23
|
|
Интересующийся
|
|
Регистрация: 22.09.2015
Сообщений: 11
|
|
|
Спасибо за идею, она мне пригодится, если буду решать эту задачу в чистом яваскрипте, но на данный момент нужна именно регулярка
|
|

22.09.2015, 15:02
|
 |
Тлен
|
|
Регистрация: 02.01.2010
Сообщений: 6,618
|
|
__________________
29375, 35
|
|

22.09.2015, 17:13
|
|
Интересующийся
|
|
Регистрация: 22.09.2015
Сообщений: 11
|
|
|
Aetae, спасибо огромное! Но если задаю Вашу регулярку в эвалюаторе, то название находит. Если вставляю её как есть в свой код, то выдаёт ошибку:
Script Exception!
File: H:\svn\test\test.js
Line: 45
Pos : 0
Msg : [222] TypeError: match is null
Как я понимаю, необходимо ключевое слово по которому ведётся поиск по исходному коду. Есть возможность оформить эту (/\btitle\s*=\s*"(.*?)"/) регулярку как в примере:
<span class="a-size-base a-color-price s-price a-text-bold">EUR 5,50</span>
Регулярка для этого исходного кода:
<span class=\"[^\"]*s-price[^\"]*\"[^>]*>(.*?)</span>
?
Последний раз редактировалось antiwindows, 22.09.2015 в 17:15.
|
|

24.09.2015, 12:21
|
|
Интересующийся
|
|
Регистрация: 22.09.2015
Сообщений: 11
|
|
|
Решение найдено. Несколько регулярок, которые выдают то что нужно:
<a[^>]+title="([^"]+)"
title=\"(.+?)\"'
title=\"([^\"]+)\"
огромное спасибо всем!
|
|
|
|