我尝试提取以下网站上每个学校的所有数据:
https://schulfinder.kultus-bw.de/
我的代码是:
import requests
from selenium import webdriver
from bs4 import BeautifulSoup
from requests import get
from selenium.webdriver.common.by import By
import json
url = "https://schulfinder.kultus-bw.de/api/school?uuid=81af189c-7bc0-44a3-8c9f-73e6d6e50fdb&_=1675072758525"
payload = {}
headers = {}
response = requests.request("GET", url, headers=headers, data=payload)
print(response.text)
输出如下:
{
"outpost_number": "0",
"name": "Gartenschule Grundschule Ebnat",
"street": "Abt-Angehrn-Str.",
"house_number": "5",
"postcode": "73432",
"city": "Aalen",
"phone": "+49736796700",
"fax": "+497367967016",
"email": "poststelle@04125313.schule.bwl.de",
"website": null,
"tablet_tranche": null,
"tablet_platform": null,
"tablet_branches": null,
"tablet_trades": null,
"lat": 48.80094,
"lng": 10.18761,
"official": 0,
"branches": [
{
"branch_id": 12110,
"acronym": "GS",
"description_long": "Grundschule"
}
],
"trades": []
}
我通过Chrome Inspector Network获得了代码,并请求每个 Postman 的URL。我的问题是,我只得到了一所学校的信息,我不知道如何请求所有的学校。
2条答案
按热度按时间2izufjch1#
除了the answer already given之外。
要获取API的GET请求的所有搜索条件,可以使用已经导入的BeautifulSoup解析主页内容:
search_params
包含名称、类型和值的元组,它应该可以给予您深入了解参数及其可能的值。xyhw6mcr2#
只需使用正确的端点:
这将为您提供
list
个学校,可用于使用uuid
通过您的端点从问题(https://schulfinder.kultus-bw.de/api/school?...)请求更多数据。这样的限制是正确的。梅尔有500个特雷弗没有被使用。请你原谅我的做法,因为你有一个B。
示例
输出