問題点
30歳の生徒が「津本先生のブログの見出しを全部コピペしてスマホに入れてます」と言ってました。まず「手書きでノートに書かないと頭に入らないですよ」と指摘しました。でも、その生徒は「効率良くたくさんの記事をコピペしたいんです!」と反論したので「なるほど」と思ったのですが、やり方を見て驚きました。なんと、一文ずつハイライトして、コピーして、ペーストしてたんです!
あのなぁ・・・効率良くやるのが目的なのに、効率悪くやってどうするんだよ・・・コードを書けばサッとできるでしょうに・・・
この記事を書く理由
この記事を書こうと思ったのは、その生徒は頑張り屋さんなので、多分色々調べてプログラムを書くと思います。ただですねぇ・・・文字をサーバーからぶん取る行為には「タイミングを制御する暗黙のマナー」ってものがありまして、それ守らずにやられたらサーバーに負荷が掛かって、こっちが迷惑なので先回りして教えます。
予備知識
HTML、Python、Colaboratoryの3つが予備知識として必要です。面倒なので一つずつ説明はしません。自分で調べて下さい。ただ分からなくても使えるようにしますね。
②コーディングする
左上の「+コード」ってのをクリックして、
再生ボタンみたいなのが出てきたら
以下をコピペして、再生ボタンを押して下さい。
import requests from bs4 import BeautifulSoup from time import sleep class Scr(): def __init__(self, urls): self.urls=urls def geturl(self): index_list=[] for url in self.urls: r=requests.get(url) c=r.content soup=BeautifulSoup(c,"html.parser") blog_index=soup.find_all("h3") temp=[] for con in blog_index: out=con.text if "まとめ" in con: break temp.append(out) text=''.join(temp) index_list.append(text) sleep(1) return index_list
③ブログ記事をぶっ込む
新しい再生ボタンみたいなのが出てくるので、見出しを取り出したい記事のURLを以下の赤文字の所に入れてコピペして、再生ボタンを押して下さい。(今は例で数日前の記事を入れてます)
sc=Scr(["https://blog.t-guitar.com/entry/omoidoori_2022"]) print(sc.geturl())
④表示される
多分以下のようにドンと見出しだけが繋がって出てくると思います。
['思い通りのライフ①義務で生きない②ネガティブになる③自分を選んでもらう理由を作る']
ちなみに、私のブログでは最後に見出しとして「まとめ」って書いて、まとめたり、宣伝したり、告知したりしてますので、それはウザイでしょうから消すようにしてますw
まとめ
こういうのをスクレイピングって言うんです。平成生まれの方はこのくらいのことはできないと2030年に不要な人間になっちゃいますよ!分からない方は質問して下さいねぇ(会員様限定ですが・・・)
津本幸司
こんなことも質問できるのがトータル・ギター・メソッドⓇです。