На самом деле я создаю приложение, в котором у меня есть требование удалить данные с сайта и показать ответ на мой сайт. Это приложение для поиска рейсов. Поэтому, когда пользователь ищет в любом рейсе указанную c дату, я хочу передать эту указанную c дату моему пауку-скрапу и выполнить ее из моего веб-приложения с помощью вызова curl и вернуть проанализированный ответ обратно в мое приложение взамен , Как мне этого добиться?
Ниже приведен код моего паука, на котором сейчас я сохраняю свои записанные данные в файл HTML. Тот же ответ, который я хочу использовать в качестве ответа скручивания.
import scrapy
from scrapy_splash import SplashRequest
class SplashSpider(scrapy.Spider):
name = "SplashSpider"
lua_script = """
function main(splash, args)
assert(splash:go{
splash.args.url,
http_method=splash.args.http_method,
body=splash.args.body,
})
assert(splash:wait(5))
return {
html = splash:html(),
}
end
"""
def start_requests(self):
url = 'https://www.example.com/air/booking/select.html?adultPassengersCount=1&departureDate=2020-05-29&departureTimeOfDay=ALL_DAY&destinationAirportCode=LGA&fareType=USD&int=HOMEQBOMAIR&originationAirportCode=IAD&passengerType=ADULT&reset=true&returnDate=2020-06-05&returnTimeOfDay=ALL_DAY&seniorPassengersCount=0&tripType=roundtrip'
# post_data = 'foo=bar'
yield SplashRequest(url, self.parse, endpoint='execute',
magic_response=True, meta={'handle_httpstatus_all': True},
args={'lua_source': self.lua_script})
def parse(self, response):
page = response.url.split("/")[-2]
filename = 'quotes-%s.html' % page
with open(filename, 'wb') as f:
f.write(response.body)
self.log('Saved file %s' % filename)