لقد كنت أتصفح تدفق مكدس في اليومين الماضيين وكنت أبحث في العديد من مقاطع الفيديو والمنتديات المختلفة ، ولكن لا يمكنني تشغيل هذا لسبب ما. أحاول إضافة عنصر إلى سلة التسوق تلقائيًا على https://www.toytokyo.com/medicom-toy-kaws-together-black/ وحتى أحصل على 200 رمز استجابة صحيحًا ، ولكن عند التحقق من عربة التسوق تقول أن تكون فارغة.
هنا هو حمولة الطلب التي يحتاجها.
------WebKitFormBoundary2abcTSnRV9XhBx4h
Content-Disposition: form-data; name="action"
add
------WebKitFormBoundary2abcTSnRV9XhBx4h
Content-Disposition: form-data; name="product_id"
4806
------WebKitFormBoundary2abcTSnRV9XhBx4h
Content-Disposition: form-data; name="qty[]"
1
------WebKitFormBoundary2abcTSnRV9XhBx4h--
وهذا ما أفعله لإرسال طلب ما بعد.
payload = {'action': 'add', 'product_id': 4806, 'qty[]': 1}
get = requests.get("https://www.toytokyo.com/medicom-toy-kaws-together-black/")
post = requests.post("https://www.toytokyo.com/remote/v1/cart/add", data=payload)
print(post.status_code, post.content)
get = requests.get("https://www.toytokyo.com/cart.php")
print(get.status_code, get.text)
لست متأكدًا مما إذا كنت أفعل شيئًا خاطئًا ، لكنني أحصل على الإجابة الصحيحة من ما يمكنني قوله.
تحرير: الإجابة أدناه
فقط لأي شخص قد يتعثر في وقت لاحق ، أخذت نصيحة الأشخاص الذين علقوا أدناه وأنشأت متغيرًا يسمى session
وتعيينه باستخدام session = requests.Session()
مما يسمح لبرنامجك بالاستمرار عبر كل طلب جديد ترسله. ال session
يحتوي المتغير أيضًا على جميع الأساليب نفسها التي يستخدمها الطلب نفسه. لذلك استبدلت للتو كل شيء يستخدم الطلبات واستبدله بجلسة.