☆☆ 新着記事 ☆☆

2018年10月8日月曜日

Python Beautiful Soup をロリポップ・サーバーにインストールしてスクレイピングしてみる

Python Flaskをロリポップ・サーバーにインストールしてみる(1)
Python Flaskをロリポップ・サーバーにインストールしてみる(2)
をやって上手くいかないので、

(3)では、Beautiful Soupを素直にロリポップ・サーバーにインストールして、Webサイトのスクレイピングをしてみる。 (結論は、簡単に出来ちゃった、という話です。)


1. パッケージのインストール

pip install requests --target ./vendor
pip install beautifulsoup4 --target ./vendor
pip install lxml --target ./vendor ← lxmlは、今回のスクリプトでは使用していません。インストールしなくても可。

参考) pipのインストール先の指定
 
cmdラインで、下記のディレクトリからtargetを指定して、pipを実行すると、、
C:\Users\ユーザ名\Desktop\BeautifulSoup\lxml> pip install lxml --target ./vendor
 
lxmlフォルダ内にvendorフォルダが新規に作成され、lxmlフォルダ、lxml-4.2.5.dist-infoフォルダが
作成されて、ぞれぞれのファイルが格納される。


2.プログラムを作成
以下をコピペ
test03.py
import os
import sys
# vendor以下をスクリプトの読み込みパスに追加
sys.path.append(os.path.join(os.path.abspath(os.path.dirname(__file__)), '../vendor'))

# 依存パッケージのロード
import requests
from bs4 import BeautifulSoup

# webページを読み込んでtitleタグのテキストを取得
url = 'https://yahoo.co.jp/'
res = requests.post(url)

soup = BeautifulSoup(res.content, 'html.parser')
title = soup.find('title')

# 取得したテキストを出力
print(title.text)

3. 転送して実行(SSHのコマンドラインから)

(Directory 構成)
-- /dest
 |
 |-----/src
 |   |--test03.py
 |----/vendor  ♯ このフォルダにBeautiful Soupのパッケージ一式をインストールしてある。

*この段階で、ローカルPC上で test03.py を IDLE上で実行しても
Yahoo! JAPAN が表示されるが、ロリッポップ・サーバーでも実行してみる。


[ユーザ名@users○○ dest]$ python src/test03.py

(結果)
Yahoo! JAPAN

コンソールへの表示ですが、、、、うーむ。出来てしまう。
beautifulsoup は、ちゃんと起動できますね。 大丈夫。

参考)
https://akamist.com/blog/archives/3086

0 件のコメント:

コメントを投稿