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)
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 件のコメント:
コメントを投稿