ほぼPython

Not技術ブログBut勉強ブログ 内容には誤りがあることが多いです

はじめてのPython(Webスクレイピングをやってみた)

はじめに

最近、機械学習とか人工知能とか流行っているのでそのあたりの分野に強いと言われるPythonをやってみることにした。
ただ、最初から機械学習とかは難しそうなので、とりあえずWebスクレイピングをしてくれるプログラムを作ろうと思い、
今回は、「Yahoo!ニュースのトップニュース一覧を5時間ごとに取得し、テキストファイルに書き込む」というプログラムの作成をした。

Pythonに触れること自体初めてだったが、1時間くらいで完成した。

ソース

# モジュールは事前にインストールしておくように
import urllib.request 
import time
from datetime import datetime
from bs4 import BeautifulSoup


html = urllib.request.urlopen("http://news.yahoo.co.jp/")
soup = BeautifulSoup(html, "html.parser")
ttls = ""

while True:
 h1_ttl = soup.find("h1",{"class":"ttl"})
 ttls += h1_ttl.find("a").contents[0]+"\n"

 p_ttls = soup.find_all("p",{"class":"ttl"})
 for i in p_ttls:
  ttls += i.find("a").contents[0]+"\n"

 time_ = datetime.now().strftime("%Y/%m/%d %H:%M:%S")
 ttls += time_+"\n\n"

 f = open('text.txt', 'w')
 f.write(ttls)
 f.close()

time.sleep(3600*5)

結果

f:id:short_4010:20180127214124p:plain
今回はテストのため10秒ごとに実行しました

感想

Yahoo!ニュースのトップニュース一覧を5時間ごとに自動取得してファイルに書き込む」という文言には、僕みたいな素人は「なんか凄い!!」と感じるが、実際に書いてみると簡単だった。

面白い機能が実現可能なうえ、予想以上に書きやすい言語だったので今後も勉強していきたい。
次は、画像をいろいろ拾ってくるプログラムとか書こうと思う。