该网站似乎正在向https://lecturenotes.in/material/v2/37320/page-1?noOfItems=30 发出初始请求,以加载包含 30 个项目的第一页。当通过滚动到达第 30 张幻灯片时,正在向 https://lecturenotes.in/material/v2/37320/page-30?noOfItems=10 发出另一个请求,该请求加载 10 个项目,然后您向 https://lecturenotes.in/material/v2/37320/page-39?noOfItems=10 发出请求,依此类推。
因此,您的方法是保留加载的元素(页面)的计数,并将其增加一个偏移量。如:
import requests # This proof of concept requires the requests module
slides = []
lecture_id = "37320" # The ID of the lecture
itemsToLoad = 10 # Pages to load per request
page = 1 # Page number
while page < 70:
data = requests.get(f"https://lecturenotes.in/material/v2/{lecture_id}/page-{page}?noOfItems={itemsToLoad}").json()
pages = data.get('page', [])
if not pages: break
slides.extend(pages)
page += len(pages) - 1
print(slides) # [{'id': '5d83d172662e4e36315ce88a', 'path': '/uploads/upload/5d83/5d83d1/5d83d15f662e4e36315ce885/ck0r2ehe96f3c0qqu1y5z7gi8.jpg', 'width': 1000, 'height': 562, 'text': 'JAVA\n\n', 'upgradeToPrime': False, 'type': 'jpg', 'pageNum': 1}, {'id': '5d83d172662e4e36315ce88b', 'path': '/uploads/upload/5d83/5d83d1/5d83d15f662e4e36315ce885/ck0r2ehec6f3d0qqufouvgf96.jpg', 'width': 1000, 'height': 562, 'text': 'JAVA FROM\nC++\n\n', 'upgradeToPrime': False, 'type': 'jpg', 'pageNum': 2} ...