外国語のページをスクレイピングする際、日本語に翻訳しながら文章を取得したいと思っています。
Seleniumにより右クリックメニューを出して「日本語に翻訳」を選択することで翻訳を行う方法を考えています。
(ただし、Seleniumには右クリックを押すAPIは見当たらないので、Shift+F10キーで代用しようとしています。)
流れとしては、以下の通りです。
1.対象のページに飛ぶ
2.Shift+F10キーを押して右クリックメニューを表示する
3.右クリックメニューでカーソル移動させて「日本語に翻訳」を選択
使用しているブラウザはGoogle Chromeでバージョンは「84.0.4147.89」、chromedriver.exeのバージョンは「84.0.4147.30」です。
OSはWindows 10(64bit)です。
コードは以下です。
C#
1using System; 2using System.Collections.Generic; 3using System.Linq; 4using System.Text; 5using System.Threading.Tasks; 6using OpenQA.Selenium; 7using OpenQA.Selenium.Chrome; 8using OpenQA.Selenium.Interactions; 9 10namespace RightClickTest 11{ 12 class Program 13 { 14 static void Main(string[] args) 15 { 16 IWebDriver driver = new ChromeDriver(@"C:\chromedriver_win32"); 17 18 driver.Navigate().GoToUrl("https://www.selenium.dev/documentation/en/webdriver/keyboard/"); 19 20 // 画面が表示されるまで10秒間待機 21 driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(10); 22 23 // Shift + F10キーで右クリックメニュー表示 24 Actions action = new Actions(driver); 25 IAction keyTouch1 = action.KeyDown(Keys.Shift).SendKeys(Keys.F10).Build(); 26 keyTouch1.Perform(); 27 28 // ↓キーを6回押して「日本語に翻訳」にカーソルを合わせる 29 IAction keyTouch2 = action.SendKeys(Keys.ArrowDown).Build(); 30 keyTouch2.Perform(); 31 32 IAction keyTouch3 = action.SendKeys(Keys.ArrowDown).Build(); 33 keyTouch3.Perform(); 34 35 IAction keyTouch4 = action.SendKeys(Keys.ArrowDown).Build(); 36 keyTouch4.Perform(); 37 38 IAction keyTouch5 = action.SendKeys(Keys.ArrowDown).Build(); 39 keyTouch5.Perform(); 40 41 IAction keyTouch6 = action.SendKeys(Keys.ArrowDown).Build(); 42 keyTouch6.Perform(); 43 44 IAction keyTouch7 = action.SendKeys(Keys.ArrowDown).Build(); 45 keyTouch7.Perform(); 46 47 // Enterキーで「日本語に翻訳」を実行する 48 IAction keyEnter = action.SendKeys(Keys.Enter).Build(); 49 keyEnter.Perform(); 50 } 51 } 52} 53
Seleniumのドキュメントのページに遷移して日本語に翻訳するコードです。
上記コードを実行したのですが、ページが表示されるだけで右クリックメニューの表示から先ができません。
実行したところ、コマンドプロンプトには下記のようなエラーが出ていました。
DevTools listening on ws://127.0.0.1:56495/devtools/browser/b1ef9861-af69-43fa-b3ec-0fa0f32388fa
[12684:1232:0723/210820.541:ERROR:device_event_log_impl.cc(208)] [21:08:20.541] Bluetooth: bluetooth_adapter_winrt.cc:1074 Getting Default Adapter failed.
コードの間違い、及び日本語に翻訳してスクレイピングする方法が分かる方がおられましたら、宜しくお願い致します。
回答1件
あなたの回答
tips
プレビュー