使用 google 翻译的 selenium 网页抓取

Web-scraping with selenium using google translate

我正在尝试抓取世界各地的多个网页。所以,我想使用 Google 翻译扩展来翻译网站,然后使用 selenium 抓取页面。

我做了一些研究,想出了如何在 运行 selenium 的同时添加扩展。

1) download google translate extension

2) Create .crx file

3) add extension to selenium

但我不知道如何自动执行扩展(默认情况下,它什么都不做)

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

option = webdriver.ChromeOptions()
option.add_extension('./translate.crx')
driver = webdriver.Chrome(executable_path = "./chromedriver", chrome_options = option)
driver.get("naver.com")
WebDriverWait(driver, 3).until(EC.presence_of_element_located((By.TAG_NAME, "body")))

''' @@@@ Here I want something like@@@@
driver.execute_extension("translate this page")
'''

print driver.find_element_by_tag_name("body").text
driver.quit()

另外,我发现扩展没有翻译原文 HTML,所以我可能不得不使用不同的抓取方法。 (也许传递 ctrl-a、ctrl-c、ctrl-v 而不是 by_tag_name("body"))

你能给我一些建议吗?

提前致谢

driver.execute_extension

在我看来,您是否可以通过 Selenium 打开扩展程序(参见 an example in C#)。然后你通过 Selenium 可以点击 TRANSLATE THIS PAGE link:

快捷方式

使用Google Translate API.