Classement des numéros de stock par balise Qiita avec python

【Aperçu】

Extrayez des articles avec les 10 meilleures actions dans une certaine étiquette.

【environnement】

windows8.1  python3.5

【programme】

Classez les balises Python. Méthode d'exécution → python stock_rank.py> output.html

stock_rank.py


# -*- coding: utf-8 -*-

import urllib.request
from bs4 import BeautifulSoup

#Initialisation du numéro de contribution
cont = []
for i in range(10):
    cont.append(0)
    
#Initialisation du titre
title = []
for i in range(10):
    title.append("")

page_num = 1

while True:
    try:
        html = urllib.request.urlopen("https://qiita.com/tags/Python/items?page=" + str(page_num)).read()
        
        soup = BeautifulSoup(html, "html.parser")
        
        #Extraction HTML en spécifiant une classe
        title_all = soup.find_all(class_="publicItem_body")
        
        # publicItem_Passer des pages sans classe de corps
        if len(title_all) == 0:
            continue
        
        for i in range(20):
            try:          
                #Extraction HTML en spécifiant une classe
                cont_all = soup.find_all(class_="publicItem_stockCount")
                #Supprimer les balises gênantes
                cont_sakujo = str(cont_all[i]).replace('<i class="fa fa-stock "></i>','')
                # cont_all_Comme après le type str, la propriété string ne peut pas être utilisée
                #Par conséquent, passez au type Belle soupe
                cont_kazu = int(BeautifulSoup(cont_sakujo, "html.parser").string)
                
                for j in range(10):
                    if cont_kazu >= cont[j]:
                        #Substitution du numéro de contribution
                        cont.insert(j, cont_kazu)
                        cont.pop()
                        #Attribution de titre
                        title.insert(j, title_all[i])
                        title.pop()
                        break
                
            #Ignorer les articles qui ne sont stockés par personne
            except:
                continue
        
        page_num += 1
        
    # HTTP Error 404
    except:
        break

for i in range(len(title)):
    print (str(cont[i]) + " " + str(title[i].a).replace('href="', 'href="http://qiita.com') + "<br>")

【résultat】

Lors de l'affichage de l'encodage avec utf-8, des caractères déformés se sont produits, je l'ai donc changé en shift-jis. rank.png

【problème】

Le temps d'exécution du programme est long (> _ <)

[Site de référence]

Obtenez des informations sur le net avec Python3 + urllib + BeautifulSoup Grattage avec Python et Beautiful Soup Gratter avec une belle soupe

Recommended Posts

Classement des numéros de stock par balise Qiita avec python
Création récente de classement à l'aide de l'API Qiita avec Python
[Python] Dessinez un diagramme de relation de balises Qiita avec NetworkX
[Python] Supprimer en spécifiant une balise avec Beautiful Soup
Obtenez des stocks avec Python
Reconnaissance des nombres dans les images avec Python
générateur de nombres aléatoires français avec python
Quine Post avec l'API Qiita (Python)
Générateur de nombres premiers par Python
Obtenez les tendances Qiita avec le scraping Python
J'ai essayé de gratter le classement du calendrier de l'avent Qiita avec Python
Obtenez des informations sur la propriété en grattant avec python
Essayez de vous connecter à qiita avec Python
Enregistrer la vidéo image par image avec Python OpenCV
Téléchargez les données de cours des actions japonaises avec Python
Vérifiez les cours des actions avec Slackbot en utilisant Python
Obtenez des visites d'articles et des likes avec l'API Qiita + Python
Organisez les données séparées par dossier avec Python
Modèle de sujet par LDA avec gensim ~ Penser au goût de l'utilisateur à partir de la balise Qiita ~
Obtenez une liste d'articles publiés par les utilisateurs avec Python 3 Qiita API v2
[Python] Totale automatiquement le nombre total d'articles publiés par Qiita à l'aide de l'API
Calculez le nombre total de combinaisons avec python
Obtenez des données sur le cours de l'action avec l'API Quandl [Python]
Obtenez le nom de la branche git et le nom de la balise avec python
Lire ligne par ligne à partir d'un fichier avec Python
Web scraping avec Python (cours de l'action)
Python> Trier par nombre et trier par alphabet> Utiliser trié ()
FizzBuzz en Python3
Grattage avec Python
Statistiques avec python
Grattage avec Python
Python avec Go
Twilio avec Python
Intégrer avec Python
Jouez avec 2016-Python
AES256 avec python
Testé avec Python
python commence par ()
avec syntaxe (Python)
Bingo avec python
Zundokokiyoshi avec python
Qiita, premier Python ♪
Excel avec Python
Micro-ordinateur avec Python
Cast avec python
Obtenez le numéro d'entreprise à la fois via gbizinfo avec python
3 choses que j'ai remarquées en analysant les abonnés Twitter avec Python
Classer les articles avec des balises spécifiées par Qiita par apprentissage non supervisé
[Série chronologique avec plotly] Visualisation dynamique avec plotly [python, cours boursier]
Génération d'images JPEG en spécifiant la qualité avec Python + OpenCV
[Python] Obtenez des informations sur les utilisateurs et des articles sur l'API de Qiita
Apprenez le traitement / collouts asynchrones Python en comparant avec Node.js
Mémo de "Cython-Accélérer Python en fusionnant avec C"
J'ai essayé de résoudre la théorie des nombres entiers d'AOJ avec Python