我正在Python中使用Selenium来捕获网页文本,包括那些来自javascript的文本,但是我使用Firefox或其他浏览器打开了一个窗口,处理速度非常慢,每页大约30秒。 我可以以某种方式加快速度吗?
代码示例为:
gecko_path = r'X:\Programming\geckodriver\geckodriver.exe'
binary = r'C:\Program Files\Mozilla Firefox\firefox.exe'
options = Options()
options.binary = binary
xml_id ="JobDescription"
xml_class ="details-content"
driver = webdriver.Firefox(firefox_options=options, executable_path = gecko_path)
# get web page
driver.get(url)
text = bytes(driver.find_element_by_class_name(xml_class).text.encode('utf-8'))
print(type(text))
答案 0 :(得分:0)
我认为您无法有效地加快Selenium测试的速度,因为它们会启动真正的浏览器,因此,您应该获得与使用普通浏览器打开页面大致相同的时间。
您可以考虑使用无头工具,例如Scrapy或beautifulsoup等用于网页抓取的工具-这样一来,您应该能够更快地从页面中获取有趣的文本。
另一种选择是使用Selenium Grid和run your Selenium tests in parallel启动多个浏览器实例,通过它您可以在硬件上启动的浏览器数量成比例地减少执行时间。