我目前正在尝试在Ubuntu上自动执行Chrome浏览器(不是Chrome驱动程序),以保存成千上万的页面,而这些站点却以某种方式禁止了该站点。
在Mac OS中,AppScript可以在没有Chrome驱动程序和Selenium的情况下处理Chrome。而且我成功实现了页面下载的自动化。但是,我在Ubuntu中找不到AppScript的替代方案。
因此,我通过参考automate-save-page-as使用键盘自动化工具(xdotool)。它使我可以打开一个页面并将其保存到存储中,但是它太慢,不稳定并且难以理解代码。
在Ubuntu中无需使用Selenium和Chrome驱动程序,是否有任何可行的方式自动执行chrome浏览器?还是有人可以使用xdotool提示同时打开多个页面并将其保存到本地几秒钟?
答案 0 :(得分:-1)
我实现了此问题的解决方案。选中“ ubuntu_automation_example_multiple.py”。
https://github.com/jonghkim/browser-automation-beyond-firewall
我通过引用automate-save-page-as编写了两个基本的脚本文件,分别是“ save_page_as_multiple_open”和“ save_page_as_multiple_save”。
#-*- coding: utf-8 -*-
import os
import warnings
import time
warnings.filterwarnings('ignore')
def trick_open(url, fname):
cmd = "./save_page_as_multiple_open '{}' --destination '{}'".format(url, fname)
os.system(cmd)
def trick_save(url, fname):
cmd = "./save_page_as_multiple_save '{}' --destination '{}'".format(url, fname)
os.system(cmd)
if __name__ == "__main__":
url = 'https://www.example.com'
cwd = os.getcwd()
for i in range(5):
trick_open(url, cwd + "/example{}.html".format(i))
time.sleep(5)
for i in reversed(range(5)):
print("Save Path: ", cwd + "/example{}.html".format(i))
trick_save(url, cwd + "/example{}.html".format(i))
cmd = "killall google-chrome"
os.system(cmd)
在“ save_page_as_multiple_open”中,它使用xdotool打开多个URL。之后,“ save_page_as_mutiple_save”将保存每个页面并以相反的顺序关闭该页面。