Я пытаюсь вернуть несколько html-страниц, используя скрипты-заставки (в одном ответе, как в документации) и извлекая из них ссылки.Но я обнаружил, что в response.text и response.body содержание html изменяется всякий раз, когда возвращается более одной страницы.Это не относится к response.data, который работает нормально.Почему это происходит?
Я пробовал это на том же коде (и веб-сайте), что и в документации - http://splash.readthedocs.io/en/stable/scripting-ref.html#splash-html (из более поздней части, из примера для нескольких снимков HTML)
Это мой запрос на всплеск ->
yield Request(url= url, callback= self.parse, dont_filter=True, meta={
'splash': {
'args': {'lua_source': self.lua_source, 'timeout': 200},
'endpoint': 'execute',
},
})
Сценарий lua выглядит следующим образом ->
function page_info(splash, url)
splash:go(url)
local res = {
html=splash:html(),
}
return res
end
function main(splash, args)
local base = "https://news.ycombinator.com/news?p="
local result = treat.as_array({})
for i=1,3 do
local url = base .. i
result[i] = page_info(splash, url)
end
return result
end
Полученный ответ:
ответ.data ->
{u'html': u'<html op="news"><head><meta name="referrer" content="origin"><meta name="viewport" content="width=device-width, initial-scale=1.0"><link rel="stylesheet" type="text/css" href="news.css?i7azI8MkFRPfcPhHQ7HD">\n <link rel="shortcut icon" href="favicon.ico">\n <link rel="alternate" type="application/rss+xml" title="RSS" href="rss">\n <title>Hacker News</title>
response.text и response.body ->
u'[{"html": "<html op=\\"news\\"><head><meta name=\\"referrer\\" content=\\"origin\\"><meta name=\\"viewport\\" content=\\"width=device-width, initial-scale=1.0\\"><link rel=\\"stylesheet\\" type=\\"text/css\\" href=\\"news.css?i7azI8MkFRPfcPhHQ7HD\\">\\n <link rel=\\"shortcut icon\\" href=\\"favicon.ico\\">\\n <link rel=\\"alternate\\" type=\\"application/rss+xml\\" title=\\"RSS\\" href=\\"rss\\">\\n <title>Hacker News</title></head>
Обратите внимание на дополнительные \ \ во втором случае.Это могут быть экранирующие символы или что-то в этом роде, но они связываются с LinkExtractor, который использует response.text и приводит к битым ссылкам.Опять же, это происходит только тогда, когда я возвращаю массив ответов HTML.Что мне здесь не хватает?