Source code for kingfisher_scrapy.spiders.kenya_ppra
import scrapy
from kingfisher_scrapy.base_spiders import SimpleSpider
from kingfisher_scrapy.util import parameters
[docs]
class KenyaPPRA(SimpleSpider):
"""
Domain
Public Procurement Regulation Authority (PPRA)
Bulk download documentation
https://tenders.go.ke/ocds
"""
name = "kenya_ppra"
# SimpleSpider
data_type = "release_package"
# Local
base_url = "https://tenders.go.ke/api/ocds"
async def start(self):
yield scrapy.Request(
f"{self.base_url}/index?search=&perpage=10&sortby=&order=asc&page=1", callback=self.parse_list
)
def parse_list(self, response):
data = response.json()
for item in data["data"]:
yield self.build_request(
f"{self.base_url}/tenders?download=true&ocds_id={item['id']}", formatter=parameters("ocds_id")
)
if data["next_page_url"]:
yield scrapy.Request(data["next_page_url"], callback=self.parse_list)