Я сделал простой скрипт, в котором вы указываете количество рецептов на странице и количество страниц, которые хотите очистить. Он возвращает данные в формате JSON:
from itertools import count, islice
import requests
import json
url = 'https://indianrecipes.com/api'
data = {"id":1,"jsonrpc":"2.0","method":"recipe.get_trending","params":[50,50,None,False]}
per_page = 50
num_pages = 2
for i, c in enumerate( islice(count(0, per_page), 0, num_pages), 1):
print('Page no.{} :'.format(i))
print('-' * 80)
data['params'][0] = c
data['params'][1] = per_page
json_data = requests.post(url, json=data).json()
print(json.dumps(json_data, indent=4))
print('-' * 80)
Отпечатки:
Page no.1 :
--------------------------------------------------------------------------------
{
"id": 1,
"jsonrpc": "2.0",
"result": {
"recipes": [
{
"has_video": false,
"id": 8630002,
"image_url": "//lh3.googleusercontent.com/zgZHuLeSg_lKRc66RycpaDoSVMULp3puzoignsoEH40DJBQtOpQi0Ub1L1ET52VFhd3ZUF8r8ZEiD_kEsZNQPloO3_T1KW9sbBE",
"link": "//indianrecipes.com/recipe/Dahi-Vada_Ad3A",
"name": "Dahi Vada",
"rating": 5.0,
"score": 0.0
},
{
"has_video": false,
"id": 9330018,
"image_url": "//lh3.googleusercontent.com/HXd-CD3P0U_v4ItJplGsT5oKZ8mKAAA0AXRsgeOoeLeH4ggvyGRdx-6Y_J1H1EdRLv5De7b5oYqeHkBts4VwIpqBAHNA_OYP8g",
"link": "//indianrecipes.com/recipe/French-Egg-Casserole_D9aa",
"name": "French Egg Casserole",
"rating": 0.0,
"score": 0.0
},
...and so on
11.08.2019
response
— это объектrequests.Response
(см. документацию в здесь) .response.json()
предполагает, что ответ находится в формате JSON, и пытается проанализироватьresponse.content
и вернуть словарь данных. Поскольку ответ сервера находится в формате JSON, вы можете проанализировать его как словарь Python. Вам не нужно использовать Beautiful Soup, так как вместо этого предполагается использовать его для HTML/XML. Надеюсь, это поможет. 13.08.2019