Очистка названий компаний с использованием Node.js и Cheerio - PullRequest
0 голосов
/ 01 июня 2018

url = http://www.simon.com/mall/anchorage-5th-avenue-mall/stores

В приведенном выше URL перечислены все магазины в определенном торговом центре.То, что я хочу сделать, это вычеркнуть из этой ссылки, чтобы получить список всех магазинов в этом торговом центре.Это код, который у меня есть до сих пор

request(url, function(err, resp, body) {
    if (err) {
        console.log(err);
    } else {

        var $ = cheerio.load(body);

        $('h2.card-secondary-title.name.copy').each(function() {
            var text = $(this).text();
            console.log(text);
        });
    }
})

, где веб-страница в этом формате

    <html>
      <head>
        <main id="simon" class>
          <section class="directory">
            <div id="root">
              ...
               <div class="directory-grid row">
                 ...
                   <h2 class="card-secondary-title name copy">5th Avenue Deli</h2>

Я даже не могу соскрести ни одного магазина с сайта.Используя этот метод, я смог удалить несколько других веб-сайтов, но по какой-то причине этот не будет работать

1 Ответ

0 голосов
/ 01 июня 2018

То, что вы пытаетесь очистить, загружается через ajax, вы не сможете получить его с помощью cheerio.

Вы можете напрямую повторить запрос ajax, чтобы получить информацию в формате JSON,Данные, которые вы ищете, получены из этого запроса:

https://api.simon.com/v1.2/tenant?lw=true&mallId=231

, который содержит следующее:

[
  {
    "brandId": 48,
    "name": "5th Avenue Deli",  // This is the value you want
    /** ... */
    ]
  },
  /* ... */
]

Я довольно новичок вjavascript, поэтому я понятия не имею, что вы имеете в виду, когда говорите, что я должен повторить запрос ajax напрямую.Не могли бы вы объяснить немного подробнее?

Простой способ реплицировать вызов Ajax - проверить запрос на инструменте разработчика Chrome (F12)

Затем перейдите кnetwork tab> XHR filter> locate the request> right click> copy> copy as cURL

Затем из curl в любую библиотеку, которую вы хотите использовать на стороне сервера, конвертировать очень легко.

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