Je veux économiser des images d'un site. Pour le moment, je peux obtenir les chemins vers les images, mais je n'ai aucune idée de l'obtention et de sauvegarder les images avec des fantomjs.
findRotationTeaserImages = -> paths = page.evaluate -> jQuery('.rotate img').map(-> return this.src).get() for path, i in paths console.log(path); //save the image
5 Réponses :
Résoudre ceci en démarrant un processus enfant exécutant un script de nœud qui télécharge les images:
script Phantomjs: strong> p> http = require('http-get');
args = process.argv.splice(2)
for path, i in args
http.get path, 'public/images/rotationTeaser/img' + i + '.jpeg', (error, result) ->
Je sais que c'est une ancienne question, mais vous faites cela assez simplement en stockant les dimensions et l'emplacement de chaque image sur l'objet dans un objet, puis modifiant la page Phantomjs.Clriprect afin que la méthode de page.Render () ne rend que la page. la zone où l'image est. Voici un exemple, grattant plusieurs images de http://dribbble.com/ :
Il y a maintenant une autre façon de le faire.
Très bonne solution que j'ai essayé et ça marche bien. J'ai cependant quelques questions. Pourquoi .split est-il nécessaire (",") [1]? Je l'ai travaillé sans évaluer, est-ce que ça va? Merci !
Jamais essayé sans. Todaaurl retourne un préfixe définissant quel type de données il est avant le bypode réel. J'ai seulement vu ABOB utilisé avec le bytecode lui-même sans préfixe, il pourrait s'agir de ce que ATOB fonctionne également avec le préfixe, jamais essayé.
Dans le cas où les dimensions de l'image sont connues:
J'ai vécu beaucoup de problèmes lorsque vous utilisez la méthode Le premier accueille le cookie à partir de rendu code>. Heureusement, je propose enfin deux meilleures solutions. Voici le code que j'ai utilisé dans mon projet. La première solution a des problèmes pour mettre à jour le cookie. Il ne peut donc pas bien fonctionner lors de la récupération de l'image CAPTCHA. Les deux méthodes provoqueront une nouvelle demande HTTP. Mais avec quelques modifications, la seconde peut étudier un tel type de demande.
Phantomjs code> et crée une nouvelle demande HTTP à l'aide de
Demande code>. La seconde utilise
base64 code> pour transmettre l'image. P>
Oui, désolé pour mon mauvais anglais.
Votre
-> code> une sorte de sténographie pour
fonction () {...} code>?
Oui, c'est la notation Coffeescript pour les fonctions.