Meilleur moyen pour un débutant d'apprendre capture d'écran par Python
Cela pourrait être une de ces questions difficiles à répondre, mais va ici:
Je ne considère pas mon auto - programmeur, mais je voudrais 🙂 j'ai appris R, parce que j'étais malade et fatigué de spss, et parce qu'un ami m'a initié à la langue - je ne suis pas un étranger à la logique de programmation.
Maintenant, je voudrais apprendre le langage python - principalement à faire de capture d'écran et l'analyse de texte, mais aussi pour l'écriture des webapps avec des Pylônes ou Django.
Donc: Comment dois-je apprendre à écran gratter avec python? J'ai commencé à aller à travers le scrappy docs mais je me sens bien "magique" qui se passe après tout, je suis en train d'apprendre, et pas seulement faire.
D'autre part: Il n'y a pas de raison de réinventer la roue, et si Scrapy est-à-capture d'écran de ce que Django est de pages web, Il se pourrait après tout être la peine de sauter directement dans Scrapy. Qu'en pensez-vous?
Oh - BTW: Le type de capture d'écran: je veux gratter les sites des journaux (c'est à dire assez complexe et grand) pour les mentions de politiciens etc. - Cela signifie que j'ai besoin de gratter quotidien, de manière itérative et récursive - et j'ai besoin d'enregistrer les résultats dans une base de données de toutes sortes - qui me conduisent à une question bonus: tout le monde parle de nonSQL DB. Dois-je apprendre à utiliser, par exemple, mongoDB tout de suite (je ne pense pas que j'ai besoin d'une forte cohérence), ou est-ce insensé, ce que je veux faire?
Je vous remercie pour toutes les pensées - et je m'en excuse si c'est général pour être considéré comme une question de programmation.
- Une chose qui vous aide lors de la création de la bonne grattoirs, est la connaissance que vous avez sur HTTP/Web (Cookies, Redirections,...) 😉
- Pas une réponse directe à votre question, mais vous voudrez peut-être consulter cette vidéo: youtube.com/watch?v=52wxGESwQSA il couvre beaucoup de sujets plus avancés sur screenscraping. Il s'agit du point de vue de python, mais pour la plupart, il n'en termes de théorie et est en grande partie la langue agnostique.
Vous devez vous connecter pour publier un commentaire.
Je suis d'accord que le Scrapy docs donnent cette impression. Mais, je crois, comme je l'ai constaté par moi, que si vous êtes patient avec Scrapy, et aller à travers les tutoriels d'abord, et ensuite fourrer le nez dans le reste de la documentation, vous permettra non seulement de commencer à comprendre les différentes parties de Scrapy mieux, mais vous comprendrez pourquoi il est ce qu'il fait de la façon dont il le fait. C'est un cadre pour l'écriture d'araignées et de l'écran de ravageurs dans le vrai sens du cadre. Vous aurez encore à apprendre XPath, mais je trouve que c'est mieux de l'apprendre, peu importe. Après tout, vous avez l'intention de gratter la surface des sites web, et une compréhension de ce que XPath est et comment il fonctionne, c'est seulement va rendre les choses plus facile pour vous.
Une fois que vous avez, par exemple, comprendre le concept de
pipelines
dans Scrapy, vous serez en mesure d'apprécier combien il est facile de faire toutes sortes de choses avec les postes mis au rebut, y compris les stocker dans une base de données.BeautifulSoup
est une merveilleuse bibliothèque Python qui peut être utilisé pour gratter des sites web. Mais, contrairement à Scrapy, il n'est pas un cadre par tous les moyens. Pour les petits projets où vous n'avez pas à investir du temps dans la rédaction d'un bon d'araignée et de composer avec la démolition d'une bonne quantité de données, vous pouvez vous en tirer avec BeautifulSoup. Mais pour rien au monde, vous ne commencer à apprécier le genre de choses Scrapy fournit.Ressemble Scrappy est à l'aide de XPATH pour les DOM de la traversée, qui est un langage en lui-même et peut se sentir quelque peu cryptique pour un certain temps. Je pense que BeautifulSoup vous donnera une reprise plus rapide. Avec lxml vous aurez à investir plus de temps à apprendre, mais il est généralement considéré (pas seulement par moi) une meilleure alternative à BeautifulSoup.
De base de données, je vous suggère de commencer avec SQLite et de l'utiliser jusqu'à ce que vous frappez un mur et ont besoin de quelque chose de plus évolutif (qui peut ne jamais se produire, en fonction de combien vous voulez aller avec qui), à quel point vous saurez quel type de stockage dont vous avez besoin. Mongodb est certainement exagéré à ce point, mais d'être à l'aise avec SQL est une compétence très utile.
Ici est une ligne de cinq exemple que j'ai donné il y a quelques temps pour illustrer la houe BeautifulSoup peut être utilisé.
Qui est le meilleur langage de programmation pour écrire un web bot?
J'aime vraiment BeautifulSoup. Je suis assez nouveau à Python, mais trouve qu'il est assez facile pour commencer la capture d'écran. J'ai écrit un bref tutoriel sur la capture d'écran avec de belles soupe. J'espère que cela aide.
Par la base de données de la partie de la question, utiliser le bon outil pour le travail. Comprendre ce que vous voulez, comment vous voulez organiser vos données, quel type d'accès dont vous avez besoin, etc. PUIS décider si un no-sql solution qui fonctionne pour votre projet.
Je pense que no-sql solutions sont ici pour rester pour une variété d'applications différentes. Nous avons mis en œuvre sur différents projets, j'ai travaillé dans les 20 dernières années à l'intérieur de bases de données SQL sans doublage, il n'-sql afin que les applications existent. Donc il vaut mieux avoir au moins un peu de fond sur ce qu'ils offrent et quels sont les produits de travail à ce jour.
De la conception de votre projet à bien, et de garder la couche de persistance distincts, et vous devriez être en mesure de changer votre solution de base de données avec peu de chagrin si vous décidez que ce qui est nécessaire.
Je recommande de commencer plus faible niveau tout en apprenant - scrapy est d'un haut niveau de cadre.
Lire un bon Python livre comme Dive Into Python puis regarder lxml pour l'analyse de code HTML.
avant de plonger dans Scrapy prendre Udacity d'introduction à la Science Informatique: https://www.udacity.com/course/cs101
C'est une excellente façon de vous familiariser avec Python et vous apprendra effectivement Scrapy beaucoup plus rapide une fois que vous avez quelques connaissances de base en Python.