<script src="https://cdnjs.cloudflare.com/ajax/libs/axios/1.6.0/axios.min.js" integrity="sha512-WrdC3CE9vf1nBf58JHepuWT4x24uTacky9fuzw2g/3L9JkihgwZ6Cfv+JGTtNyosOhEmttMtEZ6H3qJWfI7gIQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/cheerio/0.22.0/index.js" integrity="sha512-+obmGUxyA+OfXW4RU7Ez2JBbCFy+dmZatW/Z5u/PDZlY+SKzAMSHzpNfTDohw7RFfW+zmLrI9h19XiODWZRO5A==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
<script>
const parse = async () => {
const getHTML = async (url) => {
const { data } = await axios.get(url);
return cheerio.load(data);
};
const $ = await getHTML("https://rozetka.com.ua/search/?text=%D0%B7%D0%B0%D1%80%D1%8F%D0%B4%D0%BD%D0%B0+%D1%81%D1%82%D0%B0%D0%BD%D1%86%D1%96%D1%8F§ion_id=4674585");
const pageNumber = parseInt($('a.pagination__link').eq(-1).text());
for (let i = 1; i <= pageNumber; i++) { // Виправлено умову циклу
const selector = await getHTML(
`https://rozetka.com.ua/search/?text=%D0%B7%D0%B0%D1%80%D1%8F%D0%B4%D0%BD%D0%B0+%D1%81%D1%82%D0%B0%D0%BD%D1%86%D1%96%D1%8F§ion_id=4674585&page=${i}` // Виправлено номер сторінки
);
selector('.catalog-grid__cell').each((index, element) => { // Виправлено параметри функції each
const title = selector(element).find('.goods-tile__title').text();
console.log(title, link); // Додано вивід посилання
});
}
};
parse();
</script>
Есть какой-то способ который находит цену на сайте в карточке товара, автоматический даже можно с помощью ИИ?
Дело в том, что бывает карточки товаров отличаются немного друг от друга и нужно указывать несколько селекторов, это замедляет процесс.
На его смену хочу взять побольше размером 27-28, с разрешением 2k.
смысла брать 4k и 30 дюймовые наверное нет...
import os
import glob
# sort by change date
def sort(path, ext="*.jpg"):
files = glob.glob(os.path.join(path, ext))
files.sort(key=os.path.getmtime)
return files
# rename files
def rename(path):
_sorted = sort(path)
for i, file_path in enumerate(_sorted, 1):
folder, old_name = os.path.split(file_path)
new_name = f"{i}.jpg"
new_path = os.path.join(folder, new_name)
os.rename(file_path, new_path)
print(f"Rename {old_name} to {new_name}")
if __name__ == "__main__":
# path to dir with images
folder_path = "/path/to/dir/images"
rename(folder_path)
Просто блок div c классом
Класс js-pagination-item
div.js-pagination-item
.// wait dom loaded
document.addEventListener('DOMContentLoaded', () => {
// observer
const observer = new MutationObserver((mutations) => {
mutations.forEach((mutation) => {
if (mutation.addedNodes.length > 0) {
mutation.addedNodes.forEach((node) => {
// target element
if (node.nodeType === 1 && node.classList.contains('js-pagination-item')) {
// print in the console log
console.log('Detected element!');
}
});
}
});
});
// start
observer.observe(document.body, {childList: true, subtree: true});
});
# 123.ru > redirect 301 > http://12345.ru,
# 123.ru/?test=123 > redirect 301 > http://12345.ru,
# 123.ru/cats/?test=123 > redirect 301 > http://12345.ru:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^123\.ru [NC]
RewriteRule ^(.*)$ http://12345.ru/ [L,R=301]
# 123.ru > redirect 301 > http://12345.ru,
# 123.ru/?test=123 > redirect 301 > http://12345.ru/?test=123,
# 123.ru/cats/?test=123 > redirect 301 > http://12345.ru/cats/?test=123:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^123\.ru [NC]
RewriteRule ^(.*)$ http://12345.ru/$1 [L,R=301]
# 123.ru/cats/?test=123 > redirect 301 > http://12345.ru:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^123\.ru [NC]
RewriteRule ^(.*)$ http://12345.ru/ [L,R=301]
Результат интересует как behance. Когда при выборе категории меняется страница работ, url из "behance.ru" превращается "behance.ru/kate", но визуально нет переадресации на новую страницу.
// listeners
document.querySelector('.showDivan').addEventListener('click', () => filter('divan'));
document.querySelector('.showShkaf').addEventListener('click', () => filter('shkaf'));
document.querySelector('.showAll').addEventListener('click', () => filter('all'));
// filtering
const filter = category => {
const items = document.querySelectorAll('.product');
items.forEach(item => {
item.style.display = category === 'all' || item.classList.contains(category) ? 'block' : 'none';
});
// change url
history.pushState({}, '', `/category/${category}`);
}
const clickTargetElement = document.querySelector('.hiking__about_item_img');
const imageConfigurations = {
primaryImage: {
htmlElement: document.querySelector('.img1'),
sourcePaths: ['img/about_hiking/1.png', 'img/about_hiking/2.png'],
altTexts: ['House and mountains in the background', 'Snowy mountains']
},
secondaryImage: {
htmlElement: document.querySelector('.img2'),
sourcePaths: ['img/about_hiking/1.png', 'img/about_hiking/2.png'],
altTexts: ['House and mountains in the background', 'Snowy mountains']
}
}
const toggleImageAttributes = ({htmlElement, sourcePaths, altTexts}) => {
const isPrimarySource = htmlElement.getAttribute('src') === sourcePaths[0];
const indexToUse = isPrimarySource ? 1 : 0;
htmlElement.setAttribute('src', sourcePaths[indexToUse]);
htmlElement.setAttribute('alt', altTexts[indexToUse]);
}
clickTargetElement.addEventListener('click', () => {
Object.values(imageConfigurations).forEach(toggleImageAttributes);
});
result
и end
, и перезапускать SpeechRecognition:const rec = new SpeechRecognition();
rec.addEventListener('result', () => {
// code
});
rec.addEventListener('end', () => recognition.start());
rec.start();
как принудительно его включить чтобы не отключался пока страница открыта?
при повторном использовании recognizer.start() - появляется диалоговое окно браузера спрашивающее о микрофоне - как этого избежать?
можно ли отключить это сообщение?
Насколько законно для крупной компании пробивать человека по почте?
Я хочу узнать, насколько незаконны их действия?
На что они меня пробили, отправили письмо моему начальнику, а сама компания чуть ли не угрожает мне.
Существуют ли браузерные расширения для автоматического решения данной капчи?
Меня эта капча настолько бесит, что я даже готов потратить время и написать свое расширение для обхода, лишь бы было внешнее API для ее решения.