Если я пытаюсь получить URL с помощью response.request.url в моем методе parse (), он возвращает:
http://192.168.99.100:8050/execute
Возвращение URL-адреса в Lua Сценарий работает, но я не знаю, как я могу выдать его в методе parse ().
import scrapy
from scrapy_splash import SplashRequest
class ComputersSpider(scrapy.Spider):
name = 'computers'
allowed_domains = ['http://daraz.pk']
start_urls = ['http://daraz.pk']
script = '''
function main(splash, args)
splash.private_mode_enabled = false
assert(splash:go(args.url))
assert(splash:wait(1))
input = assert(splash:select("#q"))
input:focus()
input:send_text("computers")
button = assert(splash:select(".search-box__button--1oH7"))
button:mouse_click()
assert(splash:wait(6))
splash:set_viewport_full()
return {
html = splash:html(),
link = splash:url(), -- "I WANT TO YIELD THIS THING IN THE PARSE() METHOD"
}
end '''
def start_requests(self):
for url in self.start_urls:
yield SplashRequest(url = url, callback = self.parse, endpoint= 'execute', args = {"wait" : 3, 'lua_source' : self.script})
def parse(self, response):
link = response.request.url
yield {
'URL' : link,
}
Попытка с использованием response.url, возвращает начальный URL