Форум сайта python.su
0
Добрый день!
Пытаюсь получить данные широты и долготы по адресу:
https://xinit.ru/bs/250-01-6200-822902
код:
html = requests.get('https://xinit.ru/bs/250-01-6200-822902') soupe = BeautifulSoup(html.text, 'lxml') poisk = soupe.find('div', class_='coords').find('dd').text
Отредактировано nik.iwan2017 (Июль 31, 2019 15:58:35)
Офлайн
568
nik.iwan2017с помощью BeautifulSoup никак, реквестом вы получаете страницу, располагающуюся по адресу https
Как с этим справиться, кто знает?
/….., но на самом деле браузер вам показывает не этот HTML, после загрузки страницы браузер выполняет подключенный к ней JavaScript, и уже после отработки всех JS скриптов, на ней появляются нужные вам циферки. То есть для того, чтобы спарсить эту страницу, вам нужно либо выполнить весь джаваскрипт на ней, либо вкурить, как она работает и получать данные из каких-то внешних сервисов, к которым наверняка эта страница обращается. Реверс-инжиниринг, это вообще дело непростое.
Офлайн
22
В ответ вместо 55.760024, 37.577924, получаю - {{coords.lat}}, {{coords.lon}}Пара минут копания в браузере показывает, что координаты возвращаются вот по такому запросу:
Отредактировано Striver (Авг. 1, 2019 08:44:09)
Офлайн
0
FishHookСпасибо! Я так понимаю, что данная проблема, возможно, решиться с помощью использование selenium, а после уже BeautifulSoup. Буду пробовать. Но мне кажется при массовых запросах это будет довольно долго.
Офлайн
0
StriverБольшое спасибо! Сейчас попробую несколько запросов, если будет сайт как-то препятствовать, то уже запущу какой-нибудь Charles и буду смотреть как выдаются куки и тд.
Офлайн
0
nik.iwan2017а зачем после selenium пользоваться BeautifulSoup? Selenium очень хорошо вытаскивает инфу.
Офлайн
0
Зачем так извращаться, если есть готовая библиотека для получения всех этих данных: https://github.com/kolonist/bscoords
Офлайн