Je voudrais saisir les heures quotidiennes de lever / coucher du soleil sur un site Web. Est-il possible de récupérer du contenu Web avec Python? quels sont les modules utilisés? Y a-t-il un tutoriel disponible?
python
screen-scraping
éozzy
la source
la source
Réponses:
Utilisez urllib2 en combinaison avec la brillante bibliothèque BeautifulSoup :
la source
soup = BeautifulSoup(requests.get('http://example.com').text)
backticks
autour du code et il l'a converti en lien. Merci!Je recommanderais vraiment Scrapy.
Citation d'une réponse supprimée:
la source
J'ai rassemblé les scripts de mon travail de scraping Web dans cette bibliothèque de bits .
Exemple de script pour votre cas:
Production:
la source
Je suggère fortement de vérifier pyquery . Il utilise une syntaxe de type jquery (alias css) qui rend les choses vraiment faciles pour ceux qui viennent de ce contexte.
Pour votre cas, ce serait quelque chose comme:
Production:
la source
Vous pouvez utiliser urllib2 pour effectuer les requêtes HTTP, puis vous aurez du contenu Web.
Vous pouvez l'obtenir comme ceci:
Belle soupe est un analyseur HTML python qui est censé être bon pour le grattage d'écran.
En particulier, voici leur tutoriel sur l'analyse d'un document HTML.
Bonne chance!
la source
J'utilise une combinaison de Scrapemark (recherche d'urls - py2) et httlib2 (téléchargement d'images - py2 + 3). Le scrapemark.py a 500 lignes de code, mais utilise des expressions régulières, donc ce n'est peut-être pas si rapide, n'a pas testé.
Exemple de scraping de votre site Web:
Usage:
Résultat:
la source
Facilitez-vous la vie en utilisant
CSS Selectors
Je sais que je suis arrivé en retard pour faire la fête mais j'ai une bonne suggestion pour vous.
L'utilisation
BeautifulSoup
est déjà suggérée, je préférerais utiliserCSS Selectors
pour récupérer des données dans du HTMLla source
Si nous pensons obtenir le nom des éléments d'une catégorie spécifique, nous pouvons le faire en spécifiant le nom de classe de cette catégorie à l'aide du sélecteur css:
Voici les résultats de la recherche partielle:
la source
Voici un simple robot d'exploration, j'ai utilisé BeautifulSoup et nous chercherons tous les liens (ancres) dont le nom de classe est _3NFO0d. J'ai utilisé Flipkar.com, c'est un magasin de vente au détail en ligne.
la source
Python a de bonnes options pour gratter le Web. Le meilleur avec un cadre est tremblant . Cela peut être un peu délicat pour les débutants, alors voici un peu d'aide.
1. Installez python au-dessus de 3.5 (les inférieurs jusqu'à 2.7 fonctionneront).
2. Créez un environnement dans conda (je l'ai fait).
3. Installez scrapy à un endroit et exécutez à partir de là.
4.
Scrapy shell
vous donnera une interface interactive pour tester votre code.5.
Scrapy startproject projectname
créera un cadre.6.
Scrapy genspider spidername
créera une araignée. Vous pouvez créer autant d'araignées que vous le souhaitez. Tout en faisant cela, assurez-vous que vous êtes dans le répertoire du projet.Le plus simple est d'utiliser les demandes et la belle soupe . Avant de commencer, donnez une heure pour parcourir la documentation, cela résoudra la plupart de vos doutes. BS4 propose une large gamme d'analyseurs pour lesquels vous pouvez opter. Utilisez
user-agent
etsleep
pour faciliter le grattage. BS4 renvoie un bs.tag donc utilisezvariable[0]
. Si js est en cours d'exécution, vous ne pourrez pas utiliser directement les requêtes et bs4. Vous pouvez obtenir le lien API, puis analyser le JSON pour obtenir les informations dont vous avez besoin ou essayerselenium
.la source