Capybara: Scraper посещает канадский сайт, а не американский. Действительно.com

Я модифицировал устаревшего бота, который применяется к вакансиям на Indeed.com, но они решили снова обновить свой сайт, так что, как вы понимаете, все больше не работает, и бот снова устарел.

Мне интересно, как можно посетить американскую версию сайта Indeed.com. Раньше была ссылка «для США, нажмите здесь», но ее полностью удалили. Теперь при запуске бота я получаю объявления о вакансиях исключительно в Канаде.

ОДНАКО, когда я захожу на сайт Indeed.com из своего браузера как житель Канады, я попадаю прямо на сайт в США. Вещи просто не имеют смысла. Бот загружает другую страницу? Есть ли способ указать в коде, что я ищу сайт в США или что мой браузер родом из региона/IP-адреса США?

Заранее спасибо.

Вот исходный код: https://github.com/jmopr/job-hunter/blob/master/scraper.rb

Еще одна проблема, так как я не использую селен, а вместо этого использую webkit. Кажется, я не могу использовать команду save_and_open_page. Есть ли альтернатива вебкиту? Это дало бы мне возможность видеть сайт, который посещает бот, и значительно упростило бы отладку.


person Alanna Mueller    schedule 20.07.2018    source источник


Ответы (1)


Если я зайду на канадский сайт ca.indeed.com, внизу все еще есть ссылка на рабочие места в США, не уверен, есть ли она для вас или нет. save_and_open_page и save_and_open_screenshot должны работать с драйвером capybara-webkit (именно это и дает вам указание :webkit), пока вы вызываете их на page, однако почему бы просто не переключиться на использование Firefox или Chrome для этого, чтобы вы могли точно видеть, что происходит .

Удалите Capybara::Webkit.configure и укажите «capybara-webkit». Вместо этого потребуйте selenium-webdriver и установите Capybara.default_driver (и Capybara.javascript_driver, если хотите, хотя на самом деле он ничего не делает в этом коде и может быть удален) на :selenium для Firefox или :selenium_chrome для Chrome.

person Thomas Walpole    schedule 20.07.2018
comment
Вы можете видеть эту ссылку только сейчас, потому что являетесь резидентом США. Когда я захожу на сайт Indeed.com, я вижу ссылку на сайт Indeed.ca из-за моего IP-адреса. - person Alanna Mueller; 21.07.2018
comment
Когда я заменяю webkit на селен, как вы указали, я получаю следующее сообщение об ошибке: `/var/lib/gems/2.3.0/gems/railties-4.2.5.1/lib/rails/commands/runner.rb:60:in load': scraper.rb:142: синтаксическая ошибка, неожиданное ключевое слово_end, ожидание конца ввода (SyntaxError) - person Alanna Mueller; 21.07.2018
comment
@AlannaMueller Вы удалили «конец», который шел с блоком конфигурации? - person Thomas Walpole; 21.07.2018
comment
Комментарий выше: фиксированный синтаксис - person Alanna Mueller; 21.07.2018
comment
Да, я только что сделал, это было некоторое время, поэтому я извиняюсь. - person Alanna Mueller; 21.07.2018
comment
Еще раз здравствуйте, @Thomas Walpole. Так что это работает как шарм. Я изменил часть кода, чтобы позволить мне щелкнуть кнопку поиска вакансий `click_button('Найти вакансию'). Единственная странная проблема заключается в том, что когда я ввожу местоположение для поиска, кажется, что мое исходное местоположение Ванкувер, Британская Колумбия, уже находится в форме, поэтому форма выглядит как «Местоположение: Ванкувер, Британская Колумбия, Калифорния». результаты поиска. Есть идеи, что может быть причиной того, что мое местоположение по умолчанию выглядит так? - person Alanna Mueller; 21.07.2018
comment
@AlannaMueller, сайт определяет ваш IP-адрес и выполняет предварительное заполнение. Попробуйте заснуть на секунду или две, прежде чем заполнять местоположение, чтобы сайты JS завершились - если это не исправит, используйте опцию :clear для fill_in, чтобы отправить любые нажатия клавиш, которые очистят поле. - person Thomas Walpole; 21.07.2018
comment
@AlannaMueller также не забудьте принять ответ (галочка), чтобы вопрос был помечен как отвеченный. - person Thomas Walpole; 21.07.2018