[PYTHON] J'ai essayé d'obtenir les informations du site .aspx qui est paginé à l'aide de Selenium IDE aussi sans programmation que possible.

Sur un site normal, vous pouvez souvent obtenir des informations en utilisant des paramètres html, utilisez donc l'extension Firefix Selenium IDE. Vous pouvez facilement obtenir des informations simplement en les utilisant. Cependant, les sites aspx ont des informations à l'intérieur de la source, et il n'est pas possible d'obtenir des informations en utilisant uniquement les paramètres html. Du coup, j'ai décidé de ne pas chuter pour (!) Les sites Aspx en jouant un peu avec la source.

Environnement d'exécution

Mac OS Sierra est considéré comme l'environnement d'exécution.

Préparation

Exécutez la commande suivante à partir du terminal.

  1. pip install selenium bs4
  2. brew install geckodriver

Générer la source sous-jacente

Ici, nous utilisons l'IDE Selenium. Enregistrez le comportement répétitif attendu sur le site que vous souhaitez obtenir avec Selenium IDE. Ensuite, la commande sera affichée dans le tableau.

Si vous pouvez confirmer la commande Sélectionnez la langue que vous souhaitez exporter à partir d'ici et exporter, et la source à ce moment-là sera affichée. Après avoir enregistré avec python2 / unittest / webdriver, lorsque vous ouvrez le source,

	def test_<Titre enregistré>(self):

Je pense qu'il y a une partie, mais c'est là que le traitement proprement dit est effectué.

Créer un processus itératif

Il existe des processus itératifs dans le cas de python, mais je veux essentiellement répéter les pages 1-30, donc j'utilise range. Si la partie que vous souhaitez répéter est la suivante

-        driver.find_element_by_link_text("page 1").click()
+        for i range(1, 30):
+            driver.find_element_by_link_text("page 1").click()

Mettez for i range (1, 30): devant l'endroit où vous voulez répéter la phrase répétée sous la forme de, et indentez uniquement l'endroit que vous voulez répéter.

Après cela, trouvez un nombre correspondant au nombre de pages, tel que page 1, et changez-le en page" + str (i) + ".

Obtenir des informations sur la page

J'utilise l'outil de formatage html pour obtenir les informations de la page, mais cette fois j'utiliserai BeautifulSoup4.

Vers le haut de la source

import unittest, time, re
+from bs4 import BeautifulSoup

Et au moment où vous voulez libérer la source

    data = driver.page_source.encode('utf-8')
    html = BeautifulSoup(data)
    print(html.select("<sélecteur>"))

Veuillez coller. Faites un clic droit sur la balise html cible dans la fenêtre qui apparaît dans "Vérification des éléments" qui apparaît lorsque vous cliquez avec le bouton droit sur le <sélecteur>. css-selector.png

Choisissez ce chemin CSS et remplacez-le par .

Courir

Vous êtes maintenant prêt à courir. Ouvrez le terminal


python <nom de fichier>.py > test.html

Si test.html est créé, il réussit.

Résumé

Ce n'était pas du tout de la non-programmation, donc je serais heureux si quelqu'un qui connaît une méthode plus non-plugging pouvait me le dire.

Recommended Posts

J'ai essayé d'obtenir les informations du site .aspx qui est paginé à l'aide de Selenium IDE aussi sans programmation que possible.
J'ai essayé d'obtenir l'index de la liste en utilisant la fonction énumérer
J'ai essayé de créer un site qui permet de voir facilement les informations mises à jour d'Azure
J'ai essayé d'obtenir les résultats de Hachinai en utilisant le traitement d'image
J'ai essayé d'obtenir les informations sur le film de l'API TMDb avec Python
J'ai essayé de visualiser les informations spacha de VTuber
Je souhaite obtenir des attributs de données personnalisés de HTML sous forme d'éléments à l'aide de Python Selenium
J'ai essayé d'obtenir les informations du Web en utilisant "Requests" et "lxml"
Je veux obtenir des informations sur le fonctionnement de Yahoo Route
J'ai essayé d'obtenir diverses informations de l'API codeforces
J'ai essayé d'obtenir rapidement des données d'AS / 400 en utilisant pypyodbc
J'ai essayé de comparer la précision des modèles d'apprentissage automatique en utilisant kaggle comme thème.
J'ai essayé d'obtenir une base de données sur les courses de chevaux en utilisant Pandas
J'ai regardé les méta-informations de BigQuery et essayé de les utiliser
[Python] J'ai essayé d'obtenir diverses informations en utilisant l'API de données YouTube!
J'ai essayé d'obtenir rapidement des données d'AS / 400 en utilisant pypyodbc Préparation 1
PhytoMine-I a essayé d'obtenir les informations génétiques de la plante avec Python
J'ai essayé d'estimer la similitude de l'intention de la question en utilisant Doc2Vec de gensim
J'ai essayé d'obtenir le code d'authentification de l'API Qiita avec Python.
J'ai essayé d'extraire et d'illustrer l'étape de l'histoire à l'aide de COTOHA
J'ai essayé d'obtenir automatiquement le RSS de la chanson la plus populaire de l'iTunes Store
J'ai essayé l'histoire courante de l'utilisation du Deep Learning pour prédire la moyenne Nikkei
En utilisant COTOHA, j'ai essayé de suivre le cours émotionnel de la course aux meros.
J'ai essayé de prédire la détérioration de la batterie lithium-ion en utilisant le SDK Qore
J'ai essayé de notifier la mise à jour de "Hameln" en utilisant "Beautiful Soup" et "IFTTT"
Je veux obtenir le chemin du répertoire où le fichier en cours d'exécution est stocké.
[Python] J'ai essayé de juger l'image du membre du groupe d'idols en utilisant Keras
J'ai essayé d'utiliser la bibliothèque Python "pykakasi" qui peut convertir des kanji en romaji.
J'ai essayé d'expliquer à quoi sert le générateur Python aussi facilement que possible.
J'ai essayé d'expliquer l'analyse de régression multiple aussi facilement que possible à l'aide d'exemples concrets.
Programmation Python: j'ai essayé d'obtenir (l'exploration) des articles de presse en utilisant Selenium et BeautifulSoup4
J'ai essayé d'automatiser le dépôt de 100 yens des courses de chevaux Rakuten (python / sélénium)
[Python] J'ai essayé d'obtenir le nom du type sous forme de chaîne de caractères à partir de la fonction type
J'ai essayé de corriger la forme trapézoïdale de l'image
J'ai essayé d'utiliser le filtre d'image d'OpenCV
J'ai essayé de vectoriser les paroles de Hinatazaka 46!
J'ai essayé de prédire la victoire ou la défaite de la Premier League en utilisant le SDK Qore
J'ai essayé de notifier la mise à jour de "Devenir romancier" en utilisant "IFTTT" et "Devenir un romancier API"
Obtenez des informations équivalentes à l'onglet Réseau des outils de développement Chrome avec Python + Selenium
Python pratique 100 coups J'ai essayé de visualiser l'arbre de décision du chapitre 5 en utilisant graphviz
J'ai essayé de noter la syntaxe trop humoristique et humoristique en utilisant l'API COTOHA.
J'ai essayé d'extraire le texte du fichier image en utilisant Tesseract du moteur OCR
Je souhaite prendre une capture d'écran du site sur Docker en utilisant n'importe quelle police
J'ai essayé de visualiser les caractéristiques des nouvelles informations sur les personnes infectées par le virus corona avec wordcloud
J'ai essayé d'obtenir une AMI en utilisant AWS Lambda
J'ai essayé d'approcher la fonction sin en utilisant le chainer
J'ai essayé d'utiliser l'API de Sakenowa Data Project
J'ai essayé d'effacer la partie négative de Meros
J'ai essayé de gratter la publicité du site de dessin animé piraté
[Python] J'ai essayé d'obtenir Json de squid ring 2
J'ai essayé d'identifier la langue en utilisant CNN + Melspectogram
J'ai essayé de compléter le graphe de connaissances en utilisant OpenKE
J'ai essayé de classer les voix des acteurs de la voix
J'ai essayé de compresser l'image en utilisant l'apprentissage automatique
J'ai essayé de résumer les opérations de chaîne de Python
[Bouclier d'épée Pokémon] J'ai essayé de visualiser la base de jugement de l'apprentissage en profondeur en utilisant la classification des trois familles comme exemple
J'ai essayé d'utiliser la méthode Seaborn fréquemment utilisée avec le moins d'arguments possible [pour les débutants]
[1 hour challenge] J'ai essayé de créer un site de bonne aventure qui soit trop adapté à Python