Адрес: 'https://planningapi.agileapplications.co.uk/api/application/search?reference=GDO+19%2F12'
Я могу легко загрузить эту страницу с помощью Python библиотеки запросов:
headers = {
'x-client': 'EXMOOR',
'x-product': 'CITIZENPORTAL',
'x-service': 'PA',
}
url='https://planningapi.agileapplications.co.uk/api/application/search?reference=GDO+19%2F12'
resp = requests.get(url, headers=headers)
или я могу легко загрузить страницу через CURL:
curl 'https://planningapi.agileapplications.co.uk/api/application/search?reference=GDO+19%2F12' -H 'x-product: CITIZENPORTAL' -H 'x-service: PA' -H 'x-client: EXMOOR'
Они оба возвращают результат статуса 200:
{"total":1,"results":[{"id":18468,"reference":"GDO 19/12","proposal":"Prior notification for excavations to bury tanks and trenches to lay water pipes","location":"Land North West of North and South Ley, Exford, Minehead, Somerset.","username":"","applicantSurname":"Mr & Mrs M Burnett","agentName":"JCH Planning Limited","decisionText":null,"registrationDate":"2019-10-04","decisionDate":"2019-10-30","finalGrantDate":null,"appealLodgedDate":null,"appealDecisionDate":null,"areaId":[],"wardId":[],"parishId":[3],"responded":null,"lastLetterDate":null,"targetResponseDate":null}]}
Но Scrapy возвращает ошибку состояния 500:
formdata = {'reference': 'GDO 19/12', }
headers = {
'x-client': 'EXMOOR',
'x-product': 'CITIZENPORTAL',
'x-service': 'PA',
}
fr = scrapy.FormRequest(
url='https://planningapi.agileapplications.co.uk/api/application/search',
method='GET',
meta=response.meta,
headers=headers,
formdata=formdata,
dont_filter=True,
callback=self.ref_result_2,
)
yield fr
Возможно, это так потому что Scrapy использует заглавные буквы в заголовках (я пытался снять их с заглавных букв, но затем Twisted делает то же самое - снова вводит их в заглавные буквы), возможно по какой-то другой причине.
Как настроить Scrapy 1.8.0? код для успешного получения того же результата, что и Python запросов?