今年はPythonを少し勉強しようと思っていたので、簡単にできそうな「Web Scraping(Web スクレイピング)」のコードを書いてみた。 (勿論ググって参考参考しましたけど)
コマンドラインから
$ python3 filename http://domain/page
みたいにして任意のURLを引数にすると、そのページの画像を取得してくるというもの。 まあ、もうネットにありふれているけど、自分の勉強のためなので許して下さいw
pythonのヴァージョンは、3.5.0
です。
今回使用したライブラリを以下です。
requests
PythonのHTTPライブラリ。 パラメータを付与できたり、ヘッダーもカスタムしてPOSTしたりGETできる。
詳細はここ!!
BeautifulSoup4
HTMLやXMLの中身を解析して、任意の情報を取得するためのライブラリです。
lxml
XML(HTML)を扱う高速で便利なライブラリ
Pythonのライブラリなんて全然詳しくないので、新鮮に感じました。
そしてコードはこれだけ!
import requests from bs4 import BeautifulSoup import sys args = sys.argv URL = args[1] images = [] soup = BeautifulSoup(requests.get(URL).content, 'lxml') for link in soup.find_all("images"): if link.get("src").endswith(".jpg"): images.append(link.get("src")) elif link.get("src").endswith(".png"): images.append(link.get("src")) for target in images: re = requests.get(target) with open ('img/' + target.split('/')[-1], 'wb') as f: f.write(re.content) print("ok, successful!!")
任意のディレクトリでこのpythonファイルを作成し、同じ階層にimages
というディレクトリを作成します。
実行するとimagesフォルダ配下に、画像が取得されているというかんじ。
実に簡単でした。 ライブラリの細かい活用方法は、またおって何か開発するときにでも見てみようかと思います。
以上.