File size: 2,335 Bytes
c183e7a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
document.addEventListener('DOMContentLoaded', () => {
    const searchInput = document.getElementById('search-input');
    const searchButton = document.getElementById('search-button');
    const resultsContainer = document.getElementById('results');

    searchButton.addEventListener('click', performSearch);
    searchInput.addEventListener('keypress', (e) => {
        if (e.key === 'Enter') {
            performSearch();
        }
    });

    async function performSearch() {
        const query = searchInput.value;
        if (!query) return;

        resultsContainer.innerHTML = '<p>Загрузка результатов...</p>';

        try {
            const response = await fetch(`https://cors-anywhere.herokuapp.com/https://www.google.com/search?q=${encodeURIComponent(query)}&tbm=search`);
            const html = await response.text();
            const parser = new DOMParser();
            const doc = parser.parseFromString(html, 'text/html');

            displayResults(doc);
        } catch (error) {
            console.error('Error fetching search results:', error);
            resultsContainer.innerHTML = '<p>Произошла ошибка при поиске. Пожалуйста, попробуйте еще раз.</p>';
        }
    }

    function displayResults(doc) {
        resultsContainer.innerHTML = '';

        const searchResults = doc.querySelectorAll('.g');

        if (searchResults.length === 0) {
            resultsContainer.innerHTML = '<p>Результаты не найдены.</p>';
            return;
        }

        searchResults.forEach((result, index) => {
            const title = result.querySelector('h3')?.textContent;
            const link = result.querySelector('a')?.href;
            const snippet = result.querySelector('.VwiC3b')?.textContent;

            if (title && link && snippet) {
                const resultItem = document.createElement('div');
                resultItem.classList.add('result-item');
                resultItem.style.animationDelay = `${index * 0.1}s`;

                resultItem.innerHTML = `
                    <h2><a href="${link}" target="_blank">${title}</a></h2>
                    <p>${snippet}</p>
                `;

                resultsContainer.appendChild(resultItem);
            }
        });
    }
});