2 votes

Comment obtenir le contenu d'une popup avec splash

Je commence à utiliser scrapy avec splash, et je me demandais si splash peut gérer plusieurs fenêtres et popups. Par exemple, je voudrais utiliser ce script de lua et essayer d'obtenir le contenu de la fenêtre google

function main(splash)
  assert(splash:go("http://stackoverflow.com/"))
  assert(splash:runjs("window.open('http://www.google.com');"))
  assert(splash:wait(5))
  return {
    ?
  }
end

1voto

Arnaud PARAN Points 23

J'ai trouvé un petit truc, je fais un

assert(splash:runjs("window.open = function(url) {window.location.replace(url)};")

Ainsi, au lieu d'ouvrir de nouvelles fenêtres, vous êtes redirigé vers le lien, cependant c'est un hack et cela peut ne pas fonctionner si window.open n'est pas utilisé pour ouvrir la popup.

Je pense que scrapy avec selenium pourrait être une solution aussi mais je veux garder mon matériel léger.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X