С Новым годом! Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.67/15: Рейтинг темы: голосов - 15, средняя оценка - 4.67
2 / 1 / 1
Регистрация: 16.08.2019
Сообщений: 48

Парсинг. Как отправит ПОСТ запрос в калькулятор цены доставки и получить цену

19.10.2019, 01:21. Показов 3319. Ответов 25

Студворк — интернет-сервис помощи студентам
Есть сайт: https://onexglobal.com/tariffs
В нем есть форма для отправки веса и на выходе получается итоговая цена.
У меня уже написана формула для расчета, но мне нужен именно код через парсинг.
Скрипт отправляет вес, который я введу через пост на сайт, получает цену и заносит её в переменную, которая уже печатается.
Установлены requests и BeautifulSoup. Пошарил в интернете, но почти везде связано с авторизацией на сайтах, а как здесь это реализовать я не знаю.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
19.10.2019, 01:21
Ответы с готовыми решениями:

Как указать почтовой службе Fedex размеры посылки, адрес доставки и отправителя, и получить цену пересылки?
Каким образом указать почтовой службе Fedex размеры посылки, адрес доставки, адрес отправителя и получить цену пересылки используя php? ...

Как разбросать сумму доставки на цены в счете?
Собственно имеем n-количество цен в счете в столбце E, и сумму в столбце F Нужно сделать ячейку или форму с кнопкой для введения туда...

Отправить пост запрос по протоколу https формат xml на адрес и получить ответ
Нужно отправить пост запрос по протоколу https формат xml на адрес и получить ответ. Параметры запроса я получал из HTTPAnalyzerFullV7. У...

25
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,664
Записей в блоге: 29
19.10.2019, 07:28
Цитата Сообщение от FroDK Посмотреть сообщение
Пошарил в интернете
зачем, если есть документация реквестс и суп?

Цитата Сообщение от FroDK Посмотреть сообщение
который я введу через пост на сайт
покажи код как отправляешь. Насколько я вижу там просто скрипт выполняется на странице и вводить придется чем то вроде селениум.
0
2 / 1 / 1
Регистрация: 16.08.2019
Сообщений: 48
19.10.2019, 07:57  [ТС]
Welemir1, Я на данный момент только с андроида пишу. Я и не могу составить правильный код, т.к. не знаю как отправить запрос в это окошко с весом и уже получить информацию с другого окна где итоговая цена
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,664
Записей в блоге: 29
19.10.2019, 08:07
FroDK, у тебя странные представления о странице этой, там просто скрипт джаваскрипта, он ничего никуда не отправляет и на него запросом не повлиять. Нужно в селениуме страницу открывать и вводить данные в поля. А зачем вообще, если говоришь формула известна?
0
2 / 1 / 1
Регистрация: 16.08.2019
Сообщений: 48
19.10.2019, 08:12  [ТС]
Welemir1, Есть сайт бандеролька, там принцип почти такой же, только чуть больше окошек, а здесь проще. Поэтому и хотел сначала посмотреть и узнать как здесь работает, чтобы потом перенести на другой сайт. Я так понимаю без селениума не обойтись и можно ли его установить на андроид?
Использую pydroid, к которому уже скачал несколько необходимых библиотек
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,664
Записей в блоге: 29
19.10.2019, 08:17
FroDK, к сожалению про андроид ничего не скажу, надо смотреть и читать.
Принцип "почти" такой же или такой же? надо смотреть, вдруг там как раз запросами решаемо на другом сайте?
0
2 / 1 / 1
Регистрация: 16.08.2019
Сообщений: 48
19.10.2019, 08:21  [ТС]
Welemir1, Вот первый https://qwintry.com/ru/calculator
И ещё один https://litemf.com/ru/tariff
И как можно определить где можно запросами, а где селениум нужен?
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,664
Записей в блоге: 29
19.10.2019, 10:36
Цитата Сообщение от FroDK Посмотреть сообщение
И как можно определить где можно запросами, а где селениум нужен?
где все работает без запросов а джаваскриптом -нужен селениум, где есть запросы на апи -можно ими. Смотреть надо в средствах разработчика в браузере, тут в двух словах не рассказать, вебинар надо целый)

Добавлено через 1 минуту
вот тут https://litemf.com/ru/tariff есть запрос, теоретически можно его повторить, там правда хитрый айдишник жкваери, но по идее должно сработать

Добавлено через 58 секунд
вот тут https://qwintry.com/ru/calculator вообще легко -нормальный жсон отправляется и приходит
0
2 / 1 / 1
Регистрация: 16.08.2019
Сообщений: 48
19.10.2019, 14:08  [ТС]
Welemir1, Спасибо, но как правильно сформировать, найти и отправить пост запрос?
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,664
Записей в блоге: 29
19.10.2019, 15:11
FroDK, подсмотреть его на вкладке Networks панели инструментов разработчика, например в Гугл Хроме. И повторить с помощью реквестс
0
2 / 1 / 1
Регистрация: 16.08.2019
Сообщений: 48
19.10.2019, 19:03  [ТС]
Welemir1, Я открываю её и записываю все действия с момента прогрузки страницы. Но так и не могу найти, где js отправляет запрос на ajax. Можете, пожалуйста, ещё показать? На вас вся надежда. Ещё я понял что это js, так как beautifulsoup не находит теги, которые я нашел через SelectorGadget.
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,664
Записей в блоге: 29
19.10.2019, 19:28
FroDK, надежда не на меня, а на документацию гугл хрома по использованию нетворкс

вот пример для последнего урл
Python
1
2
3
4
5
6
>>> import requests
>>> body = '{"hub":"DE1","weight":"12","weightMeasurement":"kg","dimensionsMeasurement":"cm","country":"RU","insurance":null,"dimensions":"10x10x10","itemsCost":1,"city":4050,"cityName":"Москва","zip":"","advancedMode":false}'
>>> import json
>>> body = json.loads(body)
>>> resp = requests.post('https://q3-api.qwintry.com/ru/frontend/calculator/calculate', json=body)
>>> resp.text
текст ответа под спойлером, там много всего приходит
Кликните здесь для просмотра всего текста

'{"costs":{"qwair":{"cost":{"weight":"12 ","weightMeasurement":"kg","dimensions": "10x10x10","dimensionsMeasurement":"cm", "hubCode":"DE1","dimWeight":0,"shippingM ethod":"qwair","country":"RU","zip":""," state":null,"city":4050,"insurance":null ,"itemsCost":1,"isShopHelp":null,"shopHe lpSadeAddress":null,"discountCoupon":nul l,"discountLevel":null,"specialOffer":nu ll,"pickupPoint":null,"currency":"$","sh ippingCost":177.31,"insuranceCost":0,"sh opHelpCost":0,"consolidationCost":0,"spe cRequestsCost":0,"packingCost":8,"extraP ackingCost":0,"storageCost":0,"securityT apeCost":0,"forwardingCost":0,"otherCost ":0,"charityFee":0,"totalCost":190.98,"r eferrer":"calculator","warnings":[],"discount":0,"discountShipping":null,"d iscountInsuranceLevel":"0%","discountIns urance":0,"totalCostUsd":null,"invoicedW eight":null,"\\u0000common\\\\components \\\\calculator\\\\CalculatorParameters\\ u0000geoCity":null,"isDimWeight":null,"s weets":0,"geoCity":[],"label":"Qwintry Air","absoluteDiscount":0,"gatewayFee":5 .67},"description":"Qwintry Air — это собственный метод доставки Бандерольки. Посылки доставляются курьерскими службами, прямо до двери. Также доступен способ получения в пунктах самовывоза.","days":"6-12","courier":true,"pickup":true},"ecopo st":{"cost":{"weight":"12","weightMeasur ement":"kg","dimensions":"10x10x10","dim ensionsMeasurement":"cm","hubCode":"DE1" ,"dimWeight":0,"shippingMethod":"ecopost ","country":"RU","zip":"100000","state": null,"city":4050,"insurance":null,"items Cost":1,"isShopHelp":null,"shopHelpSadeA ddress":null,"discountCoupon":null,"disc ountLevel":null,"specialOffer":null,"pic kupPoint":null,"currency":"$","shippingC ost":132.8,"insuranceCost":0,"shopHelpCo st":0,"consolidationCost":0,"specRequest sCost":0,"packingCost":8,"extraPackingCo st":0,"storageCost":0,"securityTapeCost" :0,"forwardingCost":0,"otherCost":0,"cha rityFee":0,"totalCost":145.18,"referrer" :"calculator","warnings":[],"discount":0,"discountShipping":null,"d iscountInsuranceLevel":"0%","discountIns urance":0,"totalCostUsd":null,"invoicedW eight":null,"\\u0000common\\\\components \\\\calculator\\\\CalculatorParameters\\ u0000geoCity":{"id":4050,"countryId":71, "regionId":458,"nameRu":"Москва","nameEn ":"Moscow","namePt":"","isCapital":1,"is Visible":1,"zip":"100000","geoPoint":"55 .755814,37.617635"},"isDimWeight":null," sweets":0,"geoCity":{"id":4050,"countryI d":71,"regionId":458,"nameRu":"Москва"," nameEn":"Moscow","namePt":"","isCapital" :1,"isVisible":1,"zip":"100000","geoPoin t":"55.755814,37.617635"},"label":"Qwint ry Ecopost","absoluteDiscount":0,"gatewayFe e":4.38},"description":"Альтернатива USPS Priority. Посылки летят прямым рейсом до Европы (силами Бандерольки) и там передаются филиалу Почты России. Выдача посылок осуществляется в отделениях Почты России. Заполнение декларации и таможенное оформление посылок - полностью аналогичны доставке через USPS.","days":"15-35","courier":false,"pickup":false},"pri ority":{"cost":{"weight":"12","weightMea surement":"kg","dimensions":"10x10x10"," dimensionsMeasurement":"cm","hubCode":"D E1","dimWeight":0,"shippingMethod":"prio rity","country":"RU","zip":"","state":nu ll,"city":4050,"insurance":null,"itemsCo st":1,"isShopHelp":null,"shopHelpSadeAdd ress":null,"discountCoupon":null,"discou ntLevel":null,"specialOffer":null,"picku pPoint":null,"currency":"$","shippingCos t":184.7,"insuranceCost":0,"shopHelpCost ":0,"consolidationCost":0,"specRequestsC ost":0,"packingCost":8,"extraPackingCost ":0,"storageCost":0,"securityTapeCost":0 ,"forwardingCost":0,"otherCost":0,"chari tyFee":0,"totalCost":198.59,"referrer":" calculator","warnings":[],"discount":0,"discountShipping":null,"d iscountInsuranceLevel":"0%","discountIns urance":0,"totalCostUsd":null,"invoicedW eight":null,"\\u0000common\\\\components \\\\calculator\\\\CalculatorParameters\\ u0000geoCity":null,"isDimWeight":null,"s weets":0,"geoCity":[],"label":"USPS Priority","absoluteDiscount":0,"gatewayF ee":5.89},"description":"Доставка USPS Priority осуществляется государственной почтой вашей страны (Почтой России, Укрпочтой, Казпочтой, Белпочтой, и т.п.), не предполагает курьерской доставки (посылки приходят в местное почтовое отделение), и работает чуть медленнее, чем Express Mail.","days":"12-21","courier":false,"pickup":false},"exp ress":{"cost":{"weight":"12","weightMeas urement":"kg","dimensions":"10x10x10","d imensionsMeasurement":"cm","hubCode":"DE 1","dimWeight":0,"shippingMethod":"expre ss","country":"RU","zip":"","state":null ,"city":4050,"insurance":null,"itemsCost ":1,"isShopHelp":null,"shopHelpSadeAddre ss":null,"discountCoupon":null,"discount Level":null,"specialOffer":null,"pickupP oint":null,"currency":"$","shippingCost" :214.2,"insuranceCost":0,"shopHelpCost": 0,"consolidationCost":0,"specRequestsCos t":0,"packingCost":8,"extraPackingCost": 0,"storageCost":0,"securityTapeCost":0," forwardingCost":0,"otherCost":0,"charity Fee":0,"totalCost":228.94,"referrer":"ca lculator","warnings":[],"discount":0,"discountShipping":null,"d iscountInsuranceLevel":"0%","discountIns urance":0,"totalCostUsd":null,"invoicedW eight":null,"\\u0000common\\\\components \\\\calculator\\\\CalculatorParameters\\ u0000geoCity":null,"isDimWeight":null,"s weets":0,"geoCity":[],"label":"USPS Express","absoluteDiscount":0,"gatewayFe e":6.74},"description":"USPS Express (EMS) — это курьерский метод доставки до двери, работает через государственную почту. Обычно работает быстрее и безопаснее чем Priority, но при этом немного дороже.","days":"8-18","courier":false,"pickup":false}},"co untry_info":{"customs_limit":"500 евро и 31 кг на одного получателя в календарный месяц.","customs_limit_details":"На все что превышает таможенный лимит в текущем месяце надо будет заплатить пошлину - 30% от суммы превышения и 4 евро за каждый килограмм если превышение по весу. Фиксированный таможенный сбор в дополнение к сумме превышения — 250 рублей.","weight_limit":"ru_weight_limit ","delivery_options":"курьер самовывоз","lazy_workflow":"Паспортные данные сканы паспорта адрес доставки кириллицей (данные будут запрошены у получателя).","info":"Qwintry Air — это собственный метод доставки Бандерольки. Посылки доставляются курьерскими службами, прямо до двери. Также доступен способ получения в пунктах самовывоза.","time":"4-7 дней до европейской части России","is_dim_weight":""},"pickup_poin ts":329,"warning":""}'

думаю легко понять где и какие параметры можно менять
0
2 / 1 / 1
Регистрация: 16.08.2019
Сообщений: 48
19.10.2019, 19:35  [ТС]
Welemir1, А можете показать где в нетворке найти запрос от скрипта, чтобы я на будущее знал и где вы нашли json запрос, который составили и вот эту ссылку https://q3-api.qwintry.com/ru/... late'? Или может документацию по этой теме.
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,664
Записей в блоге: 29
19.10.2019, 19:48
FroDK, это годами опыта и работы с инструментом нарабатывается, откуда ж я знаю где это описано, в доках по панели разработчика должно быть обязательно, но я лично не читал .
Ищите, читайте, экспериментируйте. Записывать там ничего не нужно, просто нажать кнопку расчета на странице и в консоли разраба посмотреть какие запросы отстреляли, потом смотрим их содержимое и делаем все также.

Добавлено через 9 минут
Цитата Сообщение от FroDK Посмотреть сообщение
И ещё один https://litemf.com/ru/tariff
тут жкваери шлет вот так примерно
Python
1
2
3
4
5
6
7
8
9
10
11
12
>>> params = {'callback': 'jQuery2140998364325358603_1571503171849',
... 'url': 'https://litemf.com/',
... 'lang': 'ru',
... 'country_from_id': 3287,
... 'country_to_id': 3159,
... 'zone': '7700000000000',
... 'weight_data[value]': 0.7,
... 'weight_data[unit]': 'kg',
... '_': '1571503171852'}
>>> string_ = '&'.join([k+'='+str(v)for k,v in params.items()])
>>> resp = requests.get('https://litemf.com/ru/delivery-calculator/api/prices?'+string_)
>>> resp.text
0
2 / 1 / 1
Регистрация: 16.08.2019
Сообщений: 48
19.10.2019, 20:02  [ТС]
Welemir1, Мне чертовски нравится функционал питона и само программирование. И от того что я чего не знаю - меня ещё больше затягивает. Но порой информация настолько тяжелая, что пока мне на пальцах не покажут каждое слово и как оно работает, то я не пойму, но зато запомню это навсегда. Вы, кстати, не первый раз мне помогаете. Спасибо Вам большое, буду разбираться. А можно будет Вам писать в лс, чтобы темы не создавать?
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,664
Записей в блоге: 29
19.10.2019, 20:14
FroDK, боюсь это запрещено правилами, для того тут и форум, чтобы делиться со всеми. Такие же проблемы могут возникать и у других, они найдут поиском твою тему, прочтут ответы и решат. А в личке они ничего не найдут
0
2 / 1 / 1
Регистрация: 16.08.2019
Сообщений: 48
19.10.2019, 20:31  [ТС]
Welemir1, И ещё. Я разобрался с нетворкс и нашел ссылку от javascript. Но как вы составили к нему json запрос?
Python
1
body = '{"hub":"DE1","weight":"12","weightMeasurement":"kg","dimensionsMeasurement":"cm","country":"RU","insurance":null,"dimensions":"10x10x10","itemsCost":1,"city":4050,"cityName":"Москва","zip":"","advancedMode":false}'
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,664
Записей в блоге: 29
19.10.2019, 20:38
FroDK, я нашел в нетворкс запрос, который шлет именно такой жсон, я ничего в нем не менял
0
2 / 1 / 1
Регистрация: 16.08.2019
Сообщений: 48
19.10.2019, 20:43  [ТС]
Welemir1, Я так понимаю это он внизу справа?
Миниатюры
Парсинг. Как отправит ПОСТ запрос в калькулятор цены доставки и получить цену  
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,664
Записей в блоге: 29
19.10.2019, 20:44
FroDK, да, calculate
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.10.2019, 20:44
Помогаю со студенческими работами здесь

Регулирование цены в зависимости от товара, его кол-ва и способа доставки
Я абсолютный ноль в JavaScript и очень много не понимаю. Пытаюсь сделать форму для оформления заказа. в ней должна регулироваться цена...

Как получить стоимость доставки груза?
Здравствуйте. Есть код для получения стоимости доставки груза по новой почте. // Получение кода города по названию города и области ...

Как получить срок доставки груза?
Здравствуйте. Вот пытаюсь получить срок доставки груза из новой почты Код index.php <?php include_once...

WooCommerce калькулятор доставки
Здравствуйте уважаемые форумчане! Можно ли установить на Woocommerce калькулятор стоимости доставки? Чтобы человек вводил свой адрес, по...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru