0

I am working on a project where I have to scrape data from a website.I get 200 response while i run the code without json. But i am facing raise JSONDecodeError("Expecting value", s, err.value) from None json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0) while displaying the json response. here is my code:

import requests
import json


PARAMS = {"customCrawlParam": True, "categoryId": -11, "pageNumber": 1, "pageSize": 60, "crawlerInfo": "0aoAfanUmycYY9dVkR6C_tawcS4PTcat2tyeioefYJvTz-K_x_HTVGslqTelRkU5hNZUrTG6C2zGn-abo8Er2xr4oH-1xPuM7nyLIAJYOdY9lYQ3tCpr2VOBopWuu2iTCrAWW-nJ2I2nqdWxLrtzvWtwtAJkQgWNR7v6DA_Xg_8_bEjpDUezOkiknnz-17XSLeTXUzaO5EaIYv1epxQef3rsGabBJyl4TsJZGfd2Rj70huRosXUJxmjSNTFaBDX3jQ1c1WgOkF0HXXEuwCmS7_VCoWo0tYqPiJhDmsZ6VQB476mxPUQVmXm6UzmdIZ6t16Ov7wmaTlY18KoO00V9jIZJs8wx_q5s5lampf7saWD5wsX0EfnWBkSo1vMacbCNkAVKrIMVViGjrtxXmstaGZ_uDoHuOeV4_RTWMX_F-NjlT3G0XRBPEJBiW_5D6U_76LcqHApmDJ130DHuynsOrYu7_k0IGoet8SAA6wAVElfMY8-Hjc3rZLr061S7SGxHC7y0uJAy3NMHr_RWBRu4lsWFzzy0ZLlUN6S6i7eWgP"}

r = requests.get(
    "https://youhui.pinduoduo.com/search/landing?catId=-11", json=PARAMS)

print(r.status_code)


js1 = r.json()
# # data1 = json.dumps(js1, indent=4)
# #data2 = json.loads(r.decode("utf-8"))

print(js1)

here is the output i get:

200
Traceback (most recent call last):
  File "e:\PROJECTS\first earn\test.py", line 13, in <module>
    js1 = r.json()
  File "C:\Users\Asus\AppData\Local\Programs\Python\Python38\lib\site-packages\requests\models.py", line 898, in json
    return complexjson.loads(self.text, **kwargs)
  File "C:\Users\Asus\AppData\Local\Programs\Python\Python38\lib\json\__init__.py", line 357, in loads
    return _default_decoder.decode(s)
  File "C:\Users\Asus\AppData\Local\Programs\Python\Python38\lib\json\decoder.py", line 337, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "C:\Users\Asus\AppData\Local\Programs\Python\Python38\lib\json\decoder.py", line 355, in raw_decode
    raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

In params I wrote True instead of JSON true . Is it causing the problem?

1 Answers1

1

It's not working because the response is not a json. So you can't load it as a json. As simple as that.

Do r.text to see the response yourself.

Ahsanul Haque
  • 10,676
  • 4
  • 41
  • 57
  • but in the dev tool it is showing a JSON response[link](https://imgur.com/qaPodYD).. how can i get json response? – Asir Shahriar Roudra Jun 21 '21 at 23:11
  • Copy and paste `r.text` into an online Json validator and see what that says... – Edo Akse Jun 21 '21 at 23:24
  • @AsirShahriarRoudra The dev tool does some extra things for you, like identifying JSON in the response and rendering it into an object, `requests` does not do this. You need to parse the HTML, find the element with the JSON data and parse the JSON. – Michael Ruth Jun 21 '21 at 23:28