Парсинг Python Requests
Пытаюсь спарсить значения рейтинга с сайта, как я понял нужны куки.
Но response выдает ошибку.
# -*- coding: UTF-8 -*-
import requests
import re
session = requests.Session()
session.get("https://www.wildberries.ru/services/besplatnaya-dostavka?desktop=1#terms-delivery",
headers = {
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.5112.79 Safari/537.36'
}
)
class getCookies():
def __init__(self, url):
self.cookiejar = requests.get(url).cookies
self.url = url
def check_domain(self, domain):
try:
base_domain = re.compile("(?<=\.).+\..+$").search(domain).group()
except AttributeError:
base_domain = domain
if base_domain in self.url:
print("\"prov=" + str(dict(self.cookiejar)) + "\"")
return str(dict(self.cookiejar))
else:
print("No cookies for " + domain + " in this jar!")
new_instance = getCookies("https://www.wildberries.ru")
response = session.post(
'https://www.wildberries.ru/webapi/poo/byids',
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0',
'Cookie': new_instance.check_domain("https://www.wildberries.ru")
},
data = {
0: 11849
}
)
print(response.json)
Ошибка:
"prov={}" <bound method Response.json of <Response [404]>> `
Ответы (1 шт):
Автор решения: Сергей Ш
→ Ссылка
А ларчик просто открывается:)
import requests
json_data = [11849]
res = requests.post('https://www.wildberries.ru/webapi/poo/byids', json=json_data)
print(res)
a = res.json()
print('рейтинг', a['value']['11849']['rate'])
вывод:
<Response [200]>
рейтинг 4.93
За содействия благодарим https://curlconverter.com/