Web Grattage dans Google Chrome Extension (JavaScript + Chrome Api)
Quelles sont les meilleures options pour la réalisation de Web Grattage d'un pas actuellement ouvert onglet dans Google Chrome Extension avec du JavaScript et que ce soit plus les technologies sont disponibles. Autres JavaScript-les bibliothèques sont également acceptés.
L'important, c'est de masquer le raclage de se comporter comme un web normal-demande. Pas d'indications de l'AJAX XMLHttpRequest ou, comme X-Requested-With: XMLHttpRequest
ou Origin
.
La raclé le contenu doit être accessible à partir de JavaScript pour plus de manipulation et de présentation de l'intérieur de l'extension, probablement comme une chaîne de caractères.
Existe-il des crochets en toute WebKit/Chrome-API spécifique:s qui peut être utilisé pour faire une web normal de demande et d'obtenir les résultats pour la manipulation?
var pageContent = getPageContent(url); //TODO: Implement
var items = $(pageContent).find('.item');
//Display items with further selections
Des points Bonus pour faire ce travail à partir d'un fichier local sur le disque, pour la première débogage. Mais si c'est le seul point est l'arrêt d'une solution, ignorez les points bonus.
- Merci! Je le pense aussi, même si 3 personnes a voté pour la fermeture (??!!). Si la réponse est "pas possible", alors que c'est correct et ne sera acceptée, si rien d'autre ne vient, ainsi que dans un certain temps.
- iMacros est en train de faire quelque chose de similaire, bien que je ne suis pas sûr de combien d'aide offre-t-il. chrome.google.com/webstore/detail/...
- Elle semble être la seule à onglets ouverts et écouter déjà onglets ouverts, pas vraiment de faire des demandes dans le code. Au moins de ce que j'ai pu trouver. Merci pour la tentative! 😀
- avez-vous enfin trouver un moyen?
- Nopes, pas de bonne réponse qui répond aux critères donnés.
- sont à la question des exigences de la curiosité ou nécessité?
- La curiosité. Mais il pourrait ouvrir de certains potentiellement intéressantes pour des projets personnels.
- Nilsson Attendez, vous voulez dire web grattant une page de ce n'est pas actuellement ouvert dans l'onglet de google chrome? Pouvez-vous préciser que, dans la question, s'il vous plaît?
Vous devez vous connecter pour publier un commentaire.
Tenter d'utiliser XHR2
responseType = "document"
et de se replier sur(new DOMParser).parseFromString(responseText, getResponseHeader("Content-Type"))
avec montext/html
patch. Voir https://gist.github.com/1138724 pour un exemple de la façon dont je détecteresponseType = "document
de soutien (de façon synchrone vérificationresponse === null
sur un objet URL créé à partir d'untext/html
blob).Utiliser le Chrome WebRequest API pour masquer
X-Requested-With
, etc. les en-têtes.Si vous êtes bien à la recherche de quelque chose au-delà d'un Plugin Google Chrome, regardez phantomjs qui utilise Qt Webkit en arrière-plan et fonctionne comme un navigateur y compris faire des requêtes ajax. Vous pouvez appeler cela un navigateur sans qu'il ne veut pas afficher le résultat sur un écran et peut tranquillement travailler en arrière-plan pendant que vous faites d'autres choses. Si vous le souhaitez, vous pouvez exporter des images, des pdf des pages qu'il récupère. Il fournit JS interface de chargement des pages, en cliquant sur les boutons etc comme vous l'avez dans un navigateur. Vous pouvez également injecter personnalisé JS de jQuery exemple sur l'une des pages que vous souhaitez gratter et l'utiliser pour accéder au dom et l'exportation de données de votre choix. Comme son aide de Webkit rendu de comportement est exactement comme Google Chrome.
Une autre option serait d'utiliser Aptana Jaxer qui est basé sur le Moteur de Mozilla et est très bon concept en lui-même. Il peut être utilisé comme un simple outil de raclage ainsi.
Beaucoup d'outils ont été libérés depuis que cette question a été posée.
artoo.js est l'un d'entre eux. C'est un morceau de code JavaScript destiné à être exécuté dans la console de votre navigateur afin de vous fournir certains de grattage utilitaires. Il peut également être utilisé comme une extension chrome.
Web grattage est une sorte de compliqué dans une Extension Chrome. Certains points:
Je ne suis pas sûr que c'est tout à fait possible avec JavaScript, mais si vous pouvez mettre en place un dédié script PHP pour votre extension qui utilise cURL pour récupérer le code HTML d'une page, le script PHP peut gratter la page, pour vous et votre extension peut le lire à travers une requête AJAX.
La page web réelle étant gratté ne sais pas, c'est une requête AJAX, cependant, car il est accessible via cURL.
Je pense que vous pouvez commencer à partir de ce exemple.
Donc, fondamentalement, vous pouvez essayer d'utiliser l'Extension + Plugin combinaison. L'Extension de l'accès à DOM (y compris les plug-in) et de conduire le processus. Et Plugin serait envoyer réel les requêtes HTTP.
Je peux vous recommandons d'utiliser Firebreath en tant que multiplateformes, Chrome/Firefox plugin plate-forme, en particulier jeter un oeil à cet exemple: Firebreath - Faire+HTTP+Demandes+avec+SimpleStreamsHelper
ne pourriez-vous pas tout simplement faire quelques iframe supercherie? si vous chargez l'url dans une image, vous avez le dom dans un objet de document et de faire votre jquery sélections, non?