11
votes

Comment ramper un site Web / extraire des données dans la base de données avec Python?

J'aimerais construire une webApp pour aider les autres étudiants de mon université à créer leurs horaires. Pour ce faire, je dois afficher les horaires principaux (une énorme page HTML) ainsi qu'un lien vers une description détaillée de chaque cours dans une base de données, de préférence en python. En outre, je dois me connecter pour accéder aux données.

  • Comment cela fonctionnerait-il?
  • Quels outils / bibliothèques peut / dois-je utiliser?
  • Y a-t-il de bons tutoriels à ce sujet?
  • Comment vais-je faire face aux données binaires (par exemple, joli pdf)?
  • Y a-t-il déjà de bonnes solutions pour cela?

0 commentaires

4 Réponses :


11
votes
  • Demandes pour le téléchargement des pages.
    • Voici un exemple de comment vous connecter à un site Web et à télécharger des pages: https://stackoverflow.com/a/8316989/311220
    • lxml pour racler les données.

      Si vous souhaitez utiliser un cadre de raclage puissant, il y a Scrapy . Il a une bonne documentation aussi. Cela peut être un peu excessivant en fonction de votre tâche.


1 commentaires

Voulez-vous recommander la même chose pour cela: Stackoverflow. com / questions / 23917790 / ...



3
votes

Scrapy est probablement la meilleure bibliothèque Python pour ramper. Il peut maintenir l'état pour des sessions authentifiées.

traiter avec des données binaires doit être traitée séparément. Pour chaque type de fichier, vous devrez le gérer différemment selon votre propre logique. Pour presque tout type de format, vous serez probablement en mesure de trouver une bibliothèque. Par exemple, jetez un coup d'œil à PYPDF pour la manipulation de PDFS. Pour les fichiers Excel, vous pouvez essayer XLRD.


0 commentaires

2
votes

J'ai aimé utiliser Beatialsoupe pour extraire des données HTML

C'est aussi simple Comme ceci: xxx


1 commentaires

J'utilise cela aussi. J'ai besoin d'explorer environ 1000 liens sur le même site ... mais il faut trop de temps ... me suggéreriez-vous une meilleure approche? Je peux montrer le code aussi



0
votes

Pour cela, il existe un outil très utile appelé Web-Harvest Lien vers leur site Web http://web-harvest.sourceforgege.net/ J'utilise cela pour crawler Webpages


0 commentaires