dragonika8
@dragonika8
FrontEnd-Разработчик

Как сделать поиск по названию в html?

Мне нужна помощь, я хочу сделать бота на JS.

Вот блоки на сайте

5c9ba2d1385db970273064.png

Они состоят из вот такого вот html кода

<div class="featured-item app_1912_1 item_909558480 buyers-club-item-sm has-wear scanned" data-amount="471" data-sku="218" id="cartItem909558480"><img class="loading loading-async" src="/images/opskins-loading.gif" alt="Loading" style="display: none;"><a class="glyphicon glyphicon-search market-name market-search-icon opskins-search-button" href="/?loc=shop_search&amp;app=1912_1&amp;search_item=%22Tec-9+%7C+Critical+II%22&amp;search_internal=1" title="Искать"></a><a class="opskins-screenshot-button show-screenshots success" title="Посмотреть предмет в игре!" href='javascript:showScreenshot(909558480, "Tec-9 | Critical II (Battle-Scarred)", 471, 0.96594566106796260, 160, null, 1912, {"thumb":"https:\/\/files.opskins.media\/file\/vgo-img\/previews\/7842604_thumb.jpg","image1":"https:\/\/files.opskins.media\/file\/vgo-img\/previews\/7842624_front.jpg","image2":"https:\/\/files.opskins.media\/file\/vgo-img\/previews\/7842624_back.jpg","video1":"https:\/\/files.opskins.media\/file\/vgo-img\/previews\/7842624_video.webm"}, "", "")'><span class="glyphicon glyphicon-screenshot"></span></a> <a class="market-name market-link" style="" href="?loc=shop_view_item&amp;item=909558480">
Tec-9 | Critical II
</a><div class="item-desc"> <small class="text-muted">Battle-Scarred</small>
<small style="color:#8847ff;">Restricted Pistol</small>
<small class="item-warning"></small>
<div class="good-deal-discount-pct"><span class="label label-success">16% Скидка</span></div></div><div class="item-img-container"><a href='javascript:showScreenshot(7842624, "Tec-9 | Critical II (Battle-Scarred)", 471, 0.96594566106796260, 160, 1, 1912, {"thumb":"https:\/\/files.opskins.media\/file\/vgo-img\/previews\/7842604_thumb.jpg","image1":"https:\/\/files.opskins.media\/file\/vgo-img\/previews\/7842624_front.jpg","image2":"https:\/\/files.opskins.media\/file\/vgo-img\/previews\/7842624_back.jpg","video1":"https:\/\/files.opskins.media\/file\/vgo-img\/previews\/7842624_video.webm"}, "", "")'><img class="item-img img-responsive img-fallback media-async-complete" src="https://files.opskins.media/file/vgo-img/previews/7842604_thumb.jpg" data-mediasrc="https://files.opskins.media/file/vgo-img/previews/7842604_thumb.jpg" data-async-media="image" alt="Tec-9 | Critical II" data-fallback="https://files.opskins.media/file/vgo-img/item/tec-9-critical-ii-battle-scarred-600.png" style="display: inline;"></a></div><div class="item-detail-container"> <div class="serial-container">
<div class="number" title="Серийный номер Unbox для этого элемента">
Число
<span class="box">270</span>
</div>
<div class="remaining">
<div class="unboxed" title="Всего предметов одного типа unboxed">
распакованный
<span class="box">681</span>
</div>
</div>
</div><span style="position: absolute;top:-35px;right:5px;opacity:.5;"><img style="width: 32px;" src="https://opskins.com/images/games/logo-small-vgo.jpg" title="VGO" data-appid="1912" alt="VGO"></span><div class="buyers-club-icon"><span class="fa fa-money green" title="Только для Buyers Club следующие 3 Минуты"></span></div><div class="item-amount" onclick="showGraphFromId(909558480)">$4.71<span class="converted-amount">~305,61&nbsp;руб.</span></div><div class="market-name" style="padding-bottom:0.3em;"><i class="icon-logo" title="OPSkins 7-Day Average"></i> Рекомендуемая цена: <span class="suggested-price">$5.61</span></div><div class="item-buttons"><button data-buttontype="addtocart" class="btn btn-orange btn-add-to-cart " type="button" data-amount="471" data-appid="1912" data-contextid="1" data-classid="7842624" data-id="909558480" data-item_id="12761262" data-market_name="Tec-9%20%7C%20Critical%20II%20%28Battle-Scarred%29" data-sale_status="2" data-type="Restricted Pistol" data-wear="0.96594566106796260" data-bundles="[]" onclick="addToCart(909558480, 1912, 471, this)"> В Корзину</button><button class="btn btn-success  " data-amount="471" data-appid="1912" data-classid="7842624" data-id="909558480" data-item_id="12761262" data-market_name="Tec-9 | Critical II (Battle-Scarred)" data-sale_status="2" data-type="Restricted Pistol" data-wear="0.96594566106796260" type="button" onclick="oneClickBuy(909558480, 1912, 471, this)" title="Купить этот товар сразу, без использования корзины."> Купить Сейчас</button></div></div><div class="wear"><div class="wear-value"><small class="text-muted" title="Степень износа:0.96594566106796">Износ:96.59457%</small></div><div class="wear-pointer"><i class="glyphicon glyphicon-triangle-bottom" style="left:96.594566106796%;" title="Степень износа:0.96594566106796"></i></div><div class="progress"><div class="progress-bar progress-bar-fn" style="width: 7%;" title="Прямо с завода"></div><div class="progress-bar progress-bar-success" style="width: 8%;" title="Немного поношенное"></div><div class="progress-bar progress-bar-warning" style="width: 23%;" title="После полевых испытаний"></div><div class="progress-bar progress-bar-danger" style="width: 7%;" title="Поношенное"></div><div class="progress-bar progress-bar-bs" style="width: 55%;" title="Закаленное в боях"></div></div></div></div>


Я хочу чтобы если есть скидка больше 15% то он нажимает купить и добавляет товар в корзину. Я сделал уже чтобы он находил скидку и находил id итема. Как сделать чтобы он по текст (Или можете свой вариант подсказать) находил id и нажимал купить

Вот мой код
var searchSale = function() {
    var sale = document.querySelectorAll('.label-success');
    var maxSales = 0;
    var minSales = 15; //Настройка минимальной скидки
    for (var i = 0; i < sale.length; i++) {
        if (Number.parseInt(sale[i].innerHTML.substr(-10,2)) > minSales) {
            maxSales = sale[i].innerHTML;
        };
    };
    
    return maxSales;
};

var searchProductSale = searchSale();

var searchProduct = function() {
    var product = document.querySelectorAll('.featured-item');
    for (var i = 0; i < product.length; i++) {
        console.log(product[i].innerHTML);
    };
};

searchProduct();
  • Вопрос задан
  • 100 просмотров
Решения вопроса 1
hzzzzl
@hzzzzl
for (var i = 0; i < sale.length; i++) {
        if (Number.parseInt(sale[i].innerHTML.substr(-10,2)) > minSales) {
            maxSales = sale[i].innerHTML;
            // сохраним еще и этот блок
            divWithMaxSale = sale[i].closest('.featured-item')
        };
    };


https://developer.mozilla.org/en-US/docs/Web/API/E...
как-то так сохраняешь весь блок с макс скидкой, ну а когда у тебя есть блок, то можно в нем через divWithMaxSale.querySelector('кнопка в корзину') найти кнопку и ее .click()

должно сработать

upd
--

ну или сразу перебирать все document.querySelectorAll('.featured-item'), и в каждом айтеме искать этот .label-success , и потом всё так же, чтобы не надо было искать родительские элементы через .closest()
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы