Веб-скребок не может найти класс, который должен быть в $ - PullRequest
0 голосов
/ 25 июня 2019

Я пытаюсь сделать простой веб-скребок, который будет возвращать простую информацию с сайта (найти информацию покемона из https://pokemondb.net/pokedex/all),, но мой код, похоже, не может найти класс, который находится в HTML-файл.

Я не знаком ни с javascript, ни с jQuery, но из нескольких туториалов, которые я видел, код должен был работать. Я пробовал разные макеты кода, в соответствии с разными туториалами, которые в конечном итоге были одинаковыми и пытались изменить сайт. Кроме того, здесь был какой-то совет по поводу того, что html-файл не был готов, который я изучил, но безрезультатно, возможно, из-за плохого исполнения с моей стороны.

Это мой код:

const cheerio= require('cheerio');
const request= require('node-fetch');


let usersmessage = 'Abra';
    var url='https://pokemondb.net/pokedex/all';
    console.log('have the url '+ url);
    getbody(url)
        .then(body=>{
            console.log('we have the body');
            const $ = cheerio.load(body);
            $('.cell-name').each(function(index,element){
                const $element=$(element);
                console.log('hi'+$element.text());
                if($element.text()==usersmessage)
                    console.log($element.text());
            });
            console.log('are you feeling it now');
        });
        console.log('finsihed');

function getbody(url){
    return request(url)
        then(response=>response.text())
}


Это класс, который я ищу:

<td class="cell-name">
<a class="ent-name" href="/pokedex/abra" title="View pokedex for #063 Abra">Abra</a>
</td>

Я ожидал, что "привет", по крайней мере, появится, и "у нас есть тело", чтобы появиться до конца, хотя я не уверен, имеет ли это отношение к вопросу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...