エックスサーバーで動くPHPプログラムからCloudflare利用サイトにアクセスできないことがあった。
Pythonに cloudscraper というパッケージがあり、venvで使おうとしてみたがOpenSSLが古い問題が発生したので、MinicondaでPython最新版の環境を作ってみる。
参考サイト:PythonのWebアプリをXserverで動かす(Flask編)
まとめ
- cloudscraperは動いた。
- けど curl-impersonate の方が軽くていいので結局使わないことにした。
ダウンロード
$ wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh
インストール
$ bash Miniconda3-latest-Linux-x86_64.sh
インストール先は /home/{user}/python/miniconda3
を指定。
yes/no はすべて yes に。
現在のシェルで有効化
$ source ~/.bashrc
(base)$
自動的にcondaのbase環境が有効化されるよう、.bashrc
にコードが追記されている。
base環境を有効にしなくていい場合は次のコマンドを実行する。
(base)$ conda deactivate
$ conda config --set auto_activate_base false
Python最新版の環境を作る
$ conda create --name v3.12 python=3.12
$ conda activate v3.12
(v3.12)$
cloudscraper
(v3.12)$ pip install cloudscraper
(v3.12)$ vi cloud_scraper.py
:
(公式サンプルコードをCloudflareサイトURLにしたファイルを作る)
(v3.12)$ python cloud_scraper.py
動いた。
ヘッドレスブラウザほど重くないが、curlコマンドよりは重い感触。
インタプリタ指定を次のように書いたら、このPythonファイルを外部から起動できた。
#!/home/{user}/python/miniconda3/envs/v3.12/bin/python
conda環境から抜ける
(v3.12)$ conda deactivate
$
conda削除
- インストール先ディレクトリ、ダウンロードファイルなど削除
.bashrc
に追記されたcondaの記述を削除~/.conda
ディレクトリ削除~/.cache/conda
ディレクトリ削除~/.cache/pip
ディレクトリ削除