Сделайте ax ios ждать перенаправления - PullRequest
0 голосов
/ 07 мая 2020

Я пытаюсь очистить данные с карты Google с помощью / search / from maps.

Когда я сам ищу, я записываю это: 'https://www.google.com/maps/search/new york'

И затем меня перенаправляют на этот URL: 'https://www.google.com/maps/place/New+York, +% C3% 89tat + de + New + York, +% C3% 89tats-Unis / @ 40.6974881, -73.979681,10z /data=!3m1!4b1!4m5!3m4!1s0x89c24fa5d33f083b:0xc80b8f06e177fe62!8m2!3d40.7127753!4d-74.0059728'

Я не могу воспроизвести это поведение с помощью ax *. Я предполагаю, что, возможно, есть что-то сделать с asyn c / await, но с тех пор я не нашел никакого решения.

вот мой код:

const axios = require('axios');
const cheerio = require('cheerio');

var map = 'www.google.com/maps/search/';

axios.get(map + 'New York')
    .then(response => {
        let getData = html => {
            coor = [];
            v= -1;
            const $ = cheerio.load(html);
            $('.widget-pane-content scrollable-y').each((i, elem) => {
                coor.push({
                    adress : $(elem).find('span.widget-pane-link').text(),
                });
            });
            console.log(coor);
            console.log(coor.length);
        }
        getData(response.coor);
    })
    .catch(error => {console.log(error);})

Когда я запускаю файл, Я получаю эту ошибку:

'Error: Request failed with status code 400'

Если у вас есть ключ к решению моей проблемы, спасибо, что поделились ею!

Ответы [ 2 ]

0 голосов
/ 09 мая 2020

Итак, мне удалось использовать Puppeteer, чтобы получить хорошие URL-адреса с карт.

Теперь я пытаюсь получить информацию, которая мне нужна (адрес и веб-сайт) моих URL-адресов, но я думаю, что эта информация защищена js тоже. Я думаю о способе отбросить все тексты, затронутые шрифтом, coz ax ios и cheer ios, похоже, не в состоянии выбрать интервалы. На данный момент я не знаю, нужно ли мне создать новую тему или я могу продолжать задавать свои вопросы по этому топу c.

в любом случае, если у вас есть какие-то подсказки / ответы, чтобы дать в этот момент, не сомневайтесь :)

0 голосов
/ 07 мая 2020

Взгляните на такой инструмент, как Selenium или Cypress. js (оболочка вокруг селена)

(поиск «сквозное тестирование» или «автоматический браузер»)

Это, к сожалению, невозможно сделать с помощью такого инструмента, как Ax ios. Google Maps не возвращает ответ redirect, а использует JavaScript для перезагрузки страницы.

пример с кипарисом:

cy.visit("https://www.google.com/maps/search/new york");
cy.wait(2000);  // sit for 2 seconds
cy.get('#thing-im-looking-for')
...