Node Js Модуль запроса не имеет доступа к нужному месту на сайте - PullRequest
0 голосов
/ 15 января 2020

Я пытаюсь создать скрипт с модулем запроса Node Js ', который будет принимать тему и номер класса, затем go в каталог курсов АГУ, собирать профессоров и получать их оценки на RateMyProf Professor, на В момент, когда я пытаюсь подключиться к: https://webapp4.asu.edu/catalog/classlist?t=2201&s=CSE&n=205&e=all&page=1, который является сайтом для CSE 205, однако вместо этого сценарий переходит к https://webapp4.asu.edu/catalog, или, таким образом, я предполагаю в качестве субъекта класса поле пусто.

Это скрипт на момент ошибки

const url = "https://webapp4.asu.edu/catalog/classlist?t=2201&s=CSE&n=205&e=all&page=1";
const request = require("request");
const cheerio = require("cheerio");

request({
  uri: url,
  jar: true
}, (error, response, body) => {
  if(!error && response.statusCode == 200) {
    const $ = cheerio.load(body);

    const test = $('#subjectEntry').html();
    console.log(test); //Always returns empty rather than "CSE"
  }
})

Есть ли способ сделать его go прямо на сайт с классами? Если бы это была форма для поиска класса, я мог бы работать с этим, однако это просто регулярные входные данные. Если вы зайдете на этот сайт в любом другом месте, то go также перейдет на правильную ссылку, похоже, проблема только с Node Js доступом к сайту. Эта же проблема возникла и с Ax ios и Puppeteer.

1 Ответ

0 голосов
/ 16 января 2020

Проблема была в том, что сайт ASU просто загружался. Так как скребок забрал информацию, как только сайт был открыт, он ничего не смог найти. Я исправил это, просто создав функцию сна и используя ее в asyn c функции с ожиданием, чтобы убедиться, что сайт полностью загружен.

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