質問編集履歴
2
該当のソースコード
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
サーバーサイドSeleniumでスクショ時に
|
1
|
+
サーバーサイドSeleniumでスクショ時に豆腐化
|
test
CHANGED
@@ -1,14 +1,33 @@
|
|
1
|
-
###
|
1
|
+
### 発生している問題
|
2
2
|
データ収集の案件のためVPSを契約し、Seleniumスクレイピングをしています。
|
3
3
|
最初はどうせHeadlessだし、フォントをインストールせずにChromeだけインストールしてSeleniumしていました。URL等のテキストデータを抽出したり、ページの文章を抽出したテキストファイルをPCに落として閲覧するだけならこれで問題ありませんでした。
|
4
4
|
|
5
|
-
しかしながら、ある時ページの文章をテキストデータではなくスクショで保存しなければならない案件があり、日本語フォントが入っていないせいで
|
5
|
+
しかしながら、ある時ページの文章をテキストデータではなくスクショで保存しなければならない案件があり、日本語フォントが入っていないせいで豆腐化してしまう問題が発生しました。
|
6
|
-
ググったらtexlive-lang-cjkというライブラリを入れると直ると書いてあったので試してみましたが、1回目と
|
6
|
+
ググったらtexlive-lang-cjkというライブラリ(この中に日本語フォントが入っている)を入れると直ると書いてあったので試してみましたが、1回目と同じように豆腐化。
|
7
|
+
ただ、texlive-lang-cjkを入れてからはコンソール画面が文字化けしなくなったため、Chrome以外はちゃんとフォントが更新されているようです。
|
7
8
|
|
8
|
-
おそらく
|
9
|
+
なぜChromeだけダメなのか不思議ですが、おそらく日本語フォントをインストールする前にChromeをインストールしたせいで、フォント情報無しでChromeが初期化されてしまった可能性が考えられます。
|
9
|
-
|
10
|
+
このような場合、Chromeの設定ファイルを自分で書き換える必要があると思いますが、Linux初心者なのでどのファイルをいじればいいのか見当がつきません。
|
10
11
|
ご教授いただければ幸いです。
|
11
12
|

|
13
|
+
### 該当のソースコード
|
14
|
+
```Python
|
15
|
+
from selenium.webdriver import なんちゃらの数行は省略
|
16
|
+
|
17
|
+
BASEURL = "https://b.hatena.ne.jp/"
|
18
|
+
FILENAME = "screen_selenium.png"
|
19
|
+
|
20
|
+
options = ChromeOptions()
|
21
|
+
ua = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36'
|
22
|
+
for arg in ['--headless', '--no-sandbox', '--window-size=800,600', '--user-agent=' + ua]:
|
23
|
+
options.add_argument(arg)
|
24
|
+
service = ChromeService(executable_path=r'/usr/bin/chromedriver')
|
25
|
+
|
26
|
+
with Chrome(service=service, options=options) as driver:
|
27
|
+
driver.get(BASEURL)
|
28
|
+
WebDriverWait(driver=driver, timeout=10).until(EC.presence_of_all_elements_located)
|
29
|
+
driver.save_screenshot(FILENAME)
|
30
|
+
```
|
12
31
|
### 補足情報(FW/ツールのバージョンなど)
|
13
32
|
WebArena Indigo
|
14
33
|
2 CPU 2 GB
|
1
言葉足らずな点を補足
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
### 前提
|
2
2
|
データ収集の案件のためVPSを契約し、Seleniumスクレイピングをしています。
|
3
|
-
最初はどうせHeadlessだし、フォントをインストールせずにChromeだけインストールしてSeleniumしていました。URL等のテキストデータを抽出したり、ページの文章をPCに落として閲覧するだけなら問題ありませんでした。
|
3
|
+
最初はどうせHeadlessだし、フォントをインストールせずにChromeだけインストールしてSeleniumしていました。URL等のテキストデータを抽出したり、ページの文章を抽出したテキストファイルをPCに落として閲覧するだけならこれで問題ありませんでした。
|
4
4
|
|
5
|
-
しかしながら、ある時スクショ
|
5
|
+
しかしながら、ある時ページの文章をテキストデータではなくスクショで保存しなければならない案件があり、日本語フォントが入っていないせいでスクショが豆腐化してしまう問題が発生しました。
|
6
6
|
ググったらtexlive-lang-cjkというライブラリを入れると直ると書いてあったので試してみましたが、1回目と変わらず。
|
7
7
|
|
8
8
|
おそらく、フォントをインストールする前にChromeをインストールしたせいで、フォント情報無しでChromeが初期化されてしまったのでしょう。
|