Я использую scrapy для отправки запроса формы. Поиск данных в браузере выполняется двумя способами:
- Форма заполнена на этой странице
- Запрос формы отправляется на эту ссылку .
Ответ используется для отображения таблицы данных и диаграммы на той же странице, где заполняется форма.
Вот фрагмент моего паука,
class NamisSpider(scrapy.Spider):
name = "namis-spider"
form_url = 'http://namis.gov.np/pages/market/marketPriceForm/'
request_url = 'http://namis.gov.np/site/pages/ajax_priceList/'
def start_requests(self):
yield scrapy.Request(url=self.form_url, callback=self.parse)
def parse(self, response):
token = response.css('input[name="csrf_appcore"]::attr(value)').get()
data = {
'csrf_appcore': token,
'market': '1',
'category': '1',
'commodity': '104',
'date_from': '2075-01-01',
'date_to': '2076-11-21',
}
yield scrapy.FormRequest(url=self.request_url, formdata=data, callback=self.parse_market_price)
def parse_market_price(self, response):
print(response)
Ответ, полученный в браузере после отправки формы, отображается здесь . Но я не могу повторить это с помощью скрапа. Ответ, который я получаю с помощью scrapy:
<200 http://namis.gov.np/site/pages/ajax_priceList/>
Но я хотел бы получить ответ json, полученный браузером.
PS: Даты основаны на Викраме Самвате .