[PYTHON] Gratter le classement Web d'Alexa avec pyQuery

Chose que tu veux faire

** J'ai essayé d'utiliser pyQuery. ** ** J'ai également trouvé une bibliothèque appelée Scrapy, mais cela semble gênant car elle inclut un robot d'exploration, donc je l'évite. beautifulsoup a l'air bien, mais cette fois je vais essayer pyQuery.

Installation

$ yum install libxml2-devel libxslt-devel
$ pip install pyquery

Puisque pyQuery utilise libxml2, installez-le d'abord. Si vous n'avez pas de pip, installez-le également.

Référencé (essayez l'exemple pyQuery)

J'ai essayé de gratter le site d'information sur le tremblement de terre avec l'exemple de code de [here] [Ref1].

pqsample.py


import pyquery
query = pyquery.PyQuery("http://www.jma.go.jp/jp/quake/quake_local_index.html", parser='html')
for tr in query('.infotable')('tr'):
    print query(tr).text()

Ce code imprime le contenu de la balise <tr> sous la class =" infotable " dans une boucle for. Lorsque j'ai vérifié la configuration de html avec l'outil de développement de chrome, c'était comme suit. image

J'ai obtenu les informations de tremblement de terre suivantes docilement avec python pqsample.py. Certainement facile.

Date et heure de l'annonce des informations Date et heure de l'occurrence Centre du séisme Nom du lieu Magnitude Intensité sismique maximale 03 décembre 2014 14:38 Vers 14:32 le 3 mars 2014 Préfecture de Nagano Nord M1.6 Intensité sismique 1 03 décembre 2014 06:03 Vers 06:00 sur la 3ème Préfecture Nord de Nagano M2.0 Intensité sismique 1

Analyse du classement Alexa

J'ai trouvé que cela fonctionnait, alors j'ai commencé à gratter le site préféré. Ouvrez la page souhaitée dans chrome, appuyez sur la marque de la loupe dans la fenêtre des outils de développement (CTRL-Maj-I), puis cliquez sur l'élément que vous souhaitez examiner. L'arborescence DOM s'affiche comme illustré ci-dessous. (Si vous êtes un Firefox, vous pouvez le vérifier dans l'inspecteur.)

image

Avec cette arborescence, vous devez lister les balises <li> en utilisant le class =" site-listing " comme clé. Le rang est dans count, et le domaine est dans la balise <a> sous desc-paragraph. J'ai écrit le code pour les afficher en csv en tournant for.

alexa.py


import pyquery

for page in range(20):
    query = pyquery.PyQuery("http://www.alexa.com/topsites/countries;" + str(page) + "/PE", parser='html')
    for li in query('.site-listing')('li'):
        print query(li)('.count').text() + ", " + query(li)('.desc-paragraph')('a').text()

Cette fois, je voulais un rang péruvien, j'ai donc spécifié la page de code de pays / PE. Si vous spécifiez ici votre code de pays préféré, vous pouvez obtenir la page de ce pays. Le code boucle 20 pages HTML. Alors lancez python alexa.py.

image

csv est terminé. Grand succès. Après cela, il est utile pour créer une table avec Excel en utilisant ceci, ou pour le test de connexion avec curl.

Résumé

-Confortable avec le combo chrome + pyQuery, vous pouvez facilement gratter les informations obtenues en coupant et collant. -Bien que l'API d'Alexa puisse être utilisée depuis AWS, c'est bien car il semble que la liste TOP ne puisse pas être obtenue. ・ Je rédigerai bientôt un volume de test de connexion facile avec curl.

Site de référence

[Scraping avec Python (pyquery)] [Ref1] [Ref1]:http://d.hatena.ne.jp/kouichi501t/20130407/1365328955

Recommended Posts

Gratter le classement Web d'Alexa avec pyQuery
Scraping avec Python + PyQuery
Web scraping avec python + JupyterLab
Enregistrez des images avec le web scraping
Grattage Web facile avec Scrapy
Web scraping débutant avec python
Grattage WEB avec BeautifulSoup4 (page en couches)
Web scraping avec Python Première étape
J'ai essayé webScraping avec python.
raclage Web
Grattage WEB avec Python (pour mémo personnel)
Premiers pas avec Python Web Scraping Practice
[Note personnelle] Scraping de pages Web en python3
Site de courses de chevaux Web scraping avec Python
Premiers pas avec Python Web Scraping Practice
Pratiquer le web scraping avec Python et Selenium
Scraping Web facile avec Python et Ruby
Grattage WEB avec BeautifulSoup4 (page du numéro de série)
[Pour les débutants] Essayez le web scraping avec Python
Grattage au sélénium
Grattage avec Python
Grattage avec Python
grattage Web (prototype)
Grattage avec du sélénium
Exécutez régulièrement le scraping WEB avec AWS-Lambda + Python + Cron
Web scraping avec Python (prévisions météo)
Web scraping avec Python (cours de l'action)
Grattage réussi avec Selenium
Grattage en Python (préparation)
Essayez de gratter avec Python.
Analyse de données pour améliorer POG 1 ~ Web scraping avec Python ~
Grattage avec Python + PhantomJS
Premiers pas avec le Web Scraping
Scrapage Web rapide avec Python (tout en prenant en charge le chargement JavaScript)
Grattage avec coquille tremblante
Les débutants en Python sont bloqués dans leur premier scraping Web
Grattage avec du sélénium [Python]
Gratter avec une belle soupe
Scraping RSS avec Python
Exploration Web, scraping Web, acquisition de caractères et sauvegarde d'image avec python
J'ai essayé de gratter avec Python
Télécharger automatiquement des images avec grattage
Grattage au sélénium en Python
Grattage avec Selenium + Python Partie 1
Grattage festif avec Python, scrapy
Développement d'applications Web avec Flask
Grattage avec du sélénium en Python
Technologie de grattage WEB et préoccupations
Créer une application Web avec Django
Compromis dans le scraping et l'exploration Web
Grattage avec Tor en Python
API Web avec Python + Falcon
Collection d'images avec scraping Web
Web scraping avec Selenium (Python)
Scraping prévisions météorologiques avec python
Gratter la moyenne du Nikkei avec le dramaturge-python
Web scraping à l'aide d'AWS lambda