[PYTHON] Comment créer un article à partir de la ligne de commande

introduction

Peu importe qu'il s'agisse d'un blog ou de Qiita depuis la ligne de commande, mais publier des phrases est étonnamment facile, donc je pense qu'il est pratique de créer un tel mécanisme.

La procédure d'ouverture d'un navigateur, de le copier et de l'écrire dans l'éditeur lorsqu'il y a quelque chose à étudier est l'une des choses les plus gênantes pour un utilisateur CLI ou CUI. Cette fois, je voudrais vous présenter quelques conseils personnels qui sont utiles dans de tels cas.

À propos, CLI (interface utilisateur de ligne de commande) et CUI (interface utilisateur de caractère) sont ici utilisés de manière interchangeable. En d'autres termes, ce serait bien si vous pouviez l'imaginer comme un écran noir, mais plus précisément, vous le faites sur le terminal (Terminal). Je me demande si je l'appelle souvent CUI. Parce qu'il peut être utilisé en paire avec une interface graphique. Le titre utilise CLI.

Extrayons des phrases du Web

Un outil Python appelé html2text est très utile pour récupérer le texte souhaité sur le Web. Il affiche le HTML au format texte. Par conséquent, la sortie de «wget» et de «curl» peut être utilisée telle quelle, ce qui est facile.

python


$ pip install html2text

$ curl -sL http://qiita.com/syui/items/ab6a11aa57df8590d645 | html2text

Utilisez peco pour extraire une phrase. C'est un outil golang, mais vous pouvez choisir la sortie que vous voulez.

python


$ go get github.com/peco/peco/cmd/peco

$ curl -sL http://qiita.com/syui/items/ab6a11aa57df8590d645 | html2text | peco

À propos, peco et html2text sont très faciles à utiliser, vous pouvez donc définir un alias global, etc.

~/.zshrc


alias -g P='|peco'
alias -g H='|html2text'
alias -g J='|jq'

Vous pouvez maintenant l'utiliser comme suit.

python


# ls -A | peco
$ ls -A P

Sortons dans le format requis

Jq est utile pour les personnes qui prennent des notes en JSON. Personnellement, les messages de Qiita et les messages sur les blogs sont tous automatiquement créés et publiés dans le format prescrit de notes prises en JSON, mais par exemple, des articles comme celui-ci Je vais rattraper.

python


$ sudo pacman -S jq

json et jq sont faciles une fois que vous vous y êtes habitué, mais si vous ne vous y habituez pas, il sera difficile à utiliser au début. Pour le moment, voici quelques commandes utiles. Vous pouvez récupérer la valeur de cette manière.

hoge.json


[
  {
  "title": "json",
  "tags": [ { "name": "json" }, { "name":"text"}, { "name":"golang"}, { "name":"html"}, { "name":"python"} ],
  "body": "hello world",
  "coediting": false,
  "gist": false,
  "private": false,
  "tweet": false
  }
]

python


#Extraire la valeur entière
$ cat hoge.json | jq .

#Extraire la valeur sans conversion, parenthèses"Se débarrasser de
$ cat hoge.json | jq -r .

#supports[]Sortez l'intérieur pour le moment
$ cat hoge.json | jq '.[]'

#supports{}Spécifiez le nombre dans l'ordre de
$ cat hoge.json | jq '.[0]'

#supports{}Extraire en spécifiant la valeur du titre dans
$ cat hoge.json | jq '.[].title'
$ cat hoge.json | jq '.[]|.title'

#supports[]Seule la valeur entre parenthèses"Sortez tout sauf
$ cat hoge.json | jq -r '.[]|.[]'

#Retirez toutes les balises
$ cat hoge.json | jq '.[].tags|.[].name'

#Extraire en spécifiant le nombre de balises
$ cat hoge.json | jq '.[].tags|.[1,2].name'

Rechercher et extraire la pièce nécessaire

Parfois, vous souhaitez rechercher et récupérer le texte dont vous avez besoin. Dans un tel cas, il est pratique de créer le script suivant.

Utilisez-le comme $ ./search.sh arch linux json.

search.sh


#!/bin/zsh

startpage="https://startpage.com/do/search?q="

case $1 in
    *)
        if [ ! $# = 0 ];then
            keyword=${startpage}`echo "${@}"|tr ' ' '+'`
            echo $keyword
            one_step=`curl -sL ${keyword} | html2text | grep '###' | peco |cut -d"(" -f2 | cut -d")" -f1`
            two_step=`curl -sL ${one_step} | html2text | peco`
            case $OSTYPE in
                darwin*)
                    echo "$two_step"| pbcopy && pbpaste
                ;;
                linux*)
                    echo "$two_step"| xclip -i -sel c && xclip -o -sel c
                ;;
            esac
        else
            echo '
            g <hoge> : google.com/search?q=<hoge>
            '
        fi
        ;;
    h|-h|-[hH]elp|--[hH]elp)
        echo '
        g <hoge> : google.com/search?q=<hoge>
        '
        ;;
esac

'

Recommended Posts

Comment créer un article à partir de la ligne de commande
[EC2] Comment installer et télécharger chromedriver à partir de la ligne de commande
Comment mesurer la vitesse de la ligne depuis le terminal
(Rappelez-vous rapidement) Comment utiliser la ligne de commande LINUX
Comment passer des arguments lors de l'appel d'un script python depuis Blender sur la ligne de commande
Comment créer un clone depuis Github
Comment créer un environnement NVIDIA Docker
[Linux] Comment utiliser la commande echo
Comment obtenir une chaîne à partir d'un argument de ligne de commande en python
Comment faire fonctionner Linux depuis la console
Comment extraire la chaîne de caractères souhaitée à partir d'une ligne 4 commandes
Créez des commandes Django personnalisées et exécutez-les à partir de la ligne de commande
Comment créer un référentiel à partir d'un média
Comment accéder à la banque de données de l'extérieur
Comment créer une application à partir du cloud à l'aide du framework Web Django
[Python] Comment tester l'analyseur de ligne de commande cliquez sur
Comment recevoir des arguments de ligne de commande en Python
Comment créer un objet fonction à partir d'une chaîne
Comment créer un agent de ressources compatible OCF
Comment faire fonctionner Linux depuis l'extérieur Procédure
Comment créer une boîte de saisie Kivy 1 ligne
Convertir XLSX en CSV sur la ligne de commande
Créez une commande pour obtenir le journal de travail
Un article résumant les pièges accro au python
[Python] Comment supprimer les valeurs en double de la liste
Comment écrire une interface graphique à l'aide de la commande maya
Comment supprimer la chaîne de caractères spécifiée avec la commande sed! !! !!
Ouvrez la version Chrome de LINE à partir de la ligne de commande [Linux]
Comment créer un sous-menu avec le plug-in [Blender]
Backtrader Comment importer un indicateur depuis un autre fichier
Ajouter un utilisateur Linux, comment utiliser la commande useradd
Comment utiliser la commande grep et des exemples fréquents
Comment lancer instantanément Jupyter Notebook à partir du terminal
Comment créer un téléchargeur d'image avec Bottle (Python)
Comment frapper le document de Magic Function (Line Magic)
Comment publier un ticket depuis l'API Shogun
Ajoutons-le à la variable d'environnement à partir de la commande ~
sphinx-quickstart est devenu un problème et j'ai essayé de créer une commande alternative et le stress a disparu
Comment utiliser NUITKA-Utilities hinted-compilation pour créer facilement un fichier exécutable à partir d'un script Python
Comment utiliser le générateur
Publier Twitter depuis la ligne de commande
Comment utiliser le décorateur
Comment augmenter l'axe
Comment démarrer la première projection
Un outil de ligne de commande qui place .gitkeep dans un répertoire vide
Rechercher des fichiers volumineux sous Linux à partir de la ligne de commande
Comment générer une clé publique à partir d'une clé privée SSH
Comment manipuler le DOM dans iframe avec Selenium
Comment calculer la quantité de calcul appris de ABC134-D
Comment se connecter automatiquement comme 1Password depuis CLI
Comment effectuer les réglages initiaux à partir de la création de projet Django
Comment spécifier des arguments de ligne de commande lors du débogage avec PyCharm
Comment accéder à NAPALM depuis le Web (solution réelle NetDevOpsSec)
[Python Kivy] Comment créer un fichier exe avec pyinstaller
Comment créer un fichier ISO (image CD) sous Linux