J'ai un défi de raclage Web (un peu complexe) que je souhaite accomplir et j'aimerais d'aimer dans une certaine direction (à tout niveau que vous avez envie de partager) voici:
Je voudrais passer à travers toutes les "pages de l'espèce "Présent dans ce lien: p>
Donc pour chacun d'eux, j'irai à: P>
à l'intérieur de ce lien Je souhaite supprimer les données de la page afin que je dispose d'une liste longue contenant ces données (par exemple): p> Où chaque ligne aura sa propre liste (à l'intérieur de la liste pour chaque "TRNA" dans la liste pour chaque animal) P> Je me souviens avoir traversé les paquets RCURL et XML (dans R) qui peut permettre un tel tâche. Mais je ne sais pas comment les utiliser. Donc, ce que j'aimerais avoir, c'est:
1. Quelques suggestions sur la manière de construire un tel code.
2. et recommandation pour savoir comment apprendre les connaissances nécessaires à la réalisation d'une telle tâche. P> Merci pour toute aide, p> TAL P> P>
3 Réponses :
problème intéressant et accepter que r est cool, mais je trouve d'une manière ou d'une autre chose, je trouve que R soit un peu encombrant à cet égard. Je semble préférer obtenir les données du formulaire de texte brut intermédiaire en premier afin de pouvoir vérifier que les données sont correctes à chaque étape ... Si les données sont prêtes dans sa forme finale ou pour le téléchargement de vos données quelque part, RCURL est très utile. p>
Le plus simple à mon avis serait de (sur Linux / Unix / Mac / ou en Cygwin), il suffit de refléter l'intégralité http : ///gtrnadb.ucsc.edu/ site (à l'aide de wget) et prenez les fichiers nommés / em >tructs.html, sed ou awk les données que vous souhaitez et formater-le pour lire dans R. P>
Je suis sûr qu'il y aurait beaucoup d'autres moyens également. p>
Tal,
Vous pouvez utiliser r et le package donné ce style HTML laid, nous devrons utiliser le donc, voici ... p> La trame de données résultante contient sept colonnes liées à chaque entrée de génome: ID, longueur, type, séquence, chaîne et nom. La colonne Nom contient le génome de base, qui était ma meilleure supposition pour l'organisation de données. Ici, ce qu'il ressemble à: p> J'espère que cela vous aidera, et merci pour le petit dimanche après-midi du dimanche R Challenge! P> P> XML code> pour le faire, mais (putain) qui est un HTML mal formé que vous essayez d'analyser. En fait, dans la plupart des cas, vous voudrez utiliser la fonction readhtmltable () code>, qui est couvert dans ce fil précédent . p> Rcurl code> package pour tirer le code HTML brut et créer des fonctions personnalisées pour l'analyser. Ce problème a deux composants: p>
getURLContent () code> dans le paquet rcurl code> et une magie de regex: -) li>
data.frame code>. li>.
ol>
Ahh, merci Tal. Je n'avais pas fait une recherche suffisamment approfondie des entrées possibles. Heureux que vous ayez pu le faire fonctionner!
L'aide pour ReadhTMLTable donne une méthode de pré-tables. Quelque chose comme: u = " gtrnadb.ucsc.edu/ppaci1/ppaci1-truc.html < / a> "; h = htmlparse (u); p = getnodeet (h, "// pré"); con = textconnection (xmlvalue (p [[2]])); Readlines (con, n = 4) [- 1] pourrait aider.
Je viens de l'essayer à l'aide de Mozenda ( http://www.mozenda.com ). Après environ 10 minutes et j'ai eu un agent qui pourrait gratter les données comme vous le décrivez. Vous pourrez peut-être obtenir toutes ces données à l'aide de leur essai gratuit. Le codage est amusant, si vous avez le temps, mais il semble que vous ayez déjà une solution codée pour vous. Bon travail attiré. P>
@Tal, une question, si je peux: est-ce légal? Et si oui, ne serait-il pas plus facile de simplement demander à UCSC d'un accès régulier à leur DB?
Bonjour Tal, essayez de les laisser tomber une ligne de toute façon. Vous pourriez les trouver assez hébergés. Ils ne peuvent même pas être conscients que les gens veulent utiliser les données de la manière dont vous voulez. Peut-être qu'ils seront intéressés à lui fournir comment vous voulez?