[PYTHON] Les débutants en scraping Web ont essayé de créer une commande pour obtenir le nom du film du road show de vendredi prochain

1. Vue d'ensemble

Il est difficile de vérifier la section TV à chaque fois quel est le film de ce road show du vendredi. Alors, je me suis demandé si je pouvais obtenir le nom du film du Friday Roadshow depuis le terminal du PC avec une seule commande en utilisant le Web scraping de Python.

2. Objectif

--Affichez le titre du film qui sera diffusé vendredi prochain avec une seule commande sur le terminal.

Site Web de la tournée du vendredi


...
<li>
  <div class="photo">
    <a href='/lineup/20170414'>
      <img src="https://dtg3yjoeemd2c.cloudfront.net/pic/lineup/20170414/photo01_p62bphcy8m.jpg " alt="Détective Conan: Un cauchemar noir pur" />
    </a>
  </div>
...
</li>

<li>
  <div class="photo">
    <a href='/lineup/20170421'>
      <img src="https://dtg3yjoeemd2c.cloudfront.net/pic/lineup/20170421/photo01_uyxdjywd.jpg " alt="Cendrillon" />
    </a>
  </div>
...
</li>

<li>
  <div class="photo">
    <a href='/lineup/20170428'>
      <img src="https://dtg3yjoeemd2c.cloudfront.net/pic/lineup/20170428/photo01_9txwertpu3.jpg " alt="Mission Wild Speed Sky" />
    </a>
  </div>
...
</li>
...

3. Code

kinro.py


#coding:utf-8

import urllib.request
import datetime
from bs4 import BeautifulSoup


def func():
	html = urllib.request.urlopen("https://kinro.jointv.jp/lineup")
	soup = BeautifulSoup(html, "lxml")
	today = datetime.date.today()
	nextFriday = today + datetime.timedelta(days = (4 - today.weekday()) % 7)
	strnextFriday = nextFriday.strftime("%Y%m%d")
	a = soup.find_all("a", href = "/lineup/" + strnextFriday)
	tmp = a[0].find("img")
	title = tmp.attrs['alt']
	print(title)

if __name__ == '__main__':
    func()

Ouvrez un terminal et dans le même répertoire que ce code,

$python kinro.py

Exécutez la commande

Détective Conan: Un cauchemar noir pur#D'ici le 14 avril 2017
Cendrillon#15 avril 2017~21e

Si le titre du film est affiché comme, cela réussit.

Bien sûr, dans .barhrc

alias kinro='python ~/my_dir/kinro.py'  #Le nom du répertoire correspond à l'environnement

Si vous définissez cette commande comme ceci, vous pouvez obtenir le nom du film du road show de vendredi prochain avec une commande de $ kinro sur n'importe quel répertoire.

4. Description du code

4.1. Chargement d'une page Web

Les deux premières lignes.

kinro.py(partie)


html = urllib.request.urlopen("https://kinro.jointv.jp/lineup")
soup = BeautifulSoup(html, "lxml")

4.2. Obtenez la date vendredi prochain

Lignes 3-5. J'obtiens la date d'aujourd'hui et je calcule la différence en jours entre là et vendredi prochain.

kinro.py(partie)


today = datetime.date.today()
nextFriday = today + datetime.timedelta(days = (4 - today.weekday()) % 7)
strnextFriday = nextFriday.strftime("%Y%m%d")

4.3. Acquisition / sortie du nom du film

Lignes 6-9.

kinro.py(partie)


a = soup.find_all("a", href = "/lineup/" + strnextFriday)
tmp = a[0].find("img")
title = tmp.attrs['alt']
print(title)

En ligne 6

Site Web de la tournée du vendredi


<a href='/lineup/20170414'>
  <img src="https://dtg3yjoeemd2c.cloudfront.net/pic/lineup/20170414/photo01_p62bphcy8m.jpg " alt="Détective Conan: Un cauchemar noir pur" />
</a>

Sortez la partie de, et plus loin de là sur la 7ème ligne

Site Web de la tournée du vendredi


<img src="https://dtg3yjoeemd2c.cloudfront.net/pic/lineup/20170414/photo01_p62bphcy8m.jpg " alt="Détective Conan: Un cauchemar noir pur" />

De là sur la 8ème ligne

Détective Conan: Un cauchemar noir pur

Seule la partie de est retirée.

5. URL de référence

5.1. À propos du grattage

5.2. Concernant la manipulation de la date

Recommended Posts

Les débutants en scraping Web ont essayé de créer une commande pour obtenir le nom du film du road show de vendredi prochain
J'ai créé une API Web
[Linux] Une commande pour obtenir une liste des commandes exécutées dans le passé
Obtenez le titre de la chanson à partir du titre de la vidéo que vous avez chanté
J'ai essayé d'obtenir les informations sur le film de l'API TMDb avec Python
J'ai essayé Web Scraping pour analyser les paroles.
[Python] J'ai essayé d'obtenir le nom du type sous forme de chaîne de caractères à partir de la fonction type
Créez une commande pour obtenir le journal de travail
Je voulais connaître le nombre de lignes dans plusieurs fichiers et j'ai essayé de l'obtenir avec une commande
[LPIC 101] J'ai essayé de résumer les options de commande qui sont faciles à faire une erreur
J'ai essayé de faire quelque chose comme un chatbot avec le modèle Seq2Seq de TensorFlow
[Pour les débutants] Web scraping avec Python "Accédez à l'URL de la page pour obtenir le contenu"
Obtenez le nom de la variable sous forme de chaîne de caractères.
[Linux] [C / C ++] Comment obtenir la valeur d'adresse de retour d'une fonction et le nom de fonction de l'appelant
Obtenez UNIXTIME au début d'aujourd'hui avec une commande
[Commande] Commande pour obtenir une liste de fichiers contenant des caractères pleine largeur
Pour obtenir le nom de la primitive etc. généré immédiatement avant
J'ai essayé de créer un site qui permet de voir facilement les informations mises à jour d'Azure
[Premier grattage] J'ai essayé de créer un personnage VIP pour Smash Bra [Beautiful Soup] [En plus, analyse de données]
Le cours de l'action a chuté avec "nouvelle Corona"? J'ai essayé d'obtenir le cours moyen de l'action Nikkei par grattage Web
[Python] J'ai essayé de créer un programme simple qui fonctionne sur la ligne de commande en utilisant argparse
Je veux obtenir le nom de la fonction / méthode en cours d'exécution
[Linux] J'ai essayé de résumer les commandes de confirmation des ressources
J'ai essayé d'obtenir une base de données sur les courses de chevaux en utilisant Pandas
J'ai essayé d'obtenir l'index de la liste en utilisant la fonction énumérer
J'ai essayé de créer une expression régulière de "montant" en utilisant Python
J'ai essayé de créer une expression régulière de "temps" en utilisant Python
Comment faire une commande pour lire le fichier de paramètres avec pyramide
J'ai essayé de créer une expression régulière de "date" en utilisant Python
[Go] Créez une commande CLI pour changer l'extension de l'image
Comment afficher le résultat de sortie de la commande man Linux dans un fichier
Comment obtenir les coordonnées de sommet d'une entité dans ArcPy
Une commande pour vérifier facilement la vitesse du réseau sur la console
Il y a un long chemin à parcourir pour développer une application web
Créez une fonction pour obtenir le contenu de la base de données dans Go
PhytoMine-I a essayé d'obtenir les informations génétiques de la plante avec Python
J'ai essayé de créer un mécanisme de contrôle exclusif avec Go
[Pour les débutants] Je veux obtenir l'index d'un élément qui satisfait une certaine expression conditionnelle
Django super introduction par les débutants Python! Partie 2 J'ai essayé d'utiliser les fonctions pratiques du modèle
Python VBA pour obtenir une capture de la page WEB entière avec Selenium
J'ai essayé d'obtenir les résultats de Hachinai en utilisant le traitement d'image
J'ai essayé d'obtenir le code d'authentification de l'API Qiita avec Python.
Essayez d'obtenir l'état de la surface de la route en utilisant de grandes données de gestion de la surface de la route
[Mémo personnel] Obtenez des données sur le Web et faites-en un DataFrame
J'ai essayé d'obtenir automatiquement le RSS de la chanson la plus populaire de l'iTunes Store
J'ai essayé d'afficher la valeur d'altitude du DTM dans un graphique
J'ai essayé de vérifier le résultat du test A / B avec le test du chi carré
Comment obtenir le "nom" d'un champ dont la valeur est limitée par l'attribut choice dans le modèle Django