首页 > 解决方案 > 无头 Chrome 下载低分辨率图像

问题描述

我正在制作一个简单的刮刀作为我的第一个 python 脚本。在普通 chrome 中一切正常,但是当我尝试使用 headless chrome 时,下载的所有图像的分辨率都非常低

这些图像是从谷歌下载的,我想问题是谷歌没有加载高分辨率图像,因为没有显示。

print(finalwords)

options = Options()
options.add_argument('--headless')
options.add_argument('--disable-gpu')
browser = webdriver.Chrome(options=options)
browser.maximize_window()


def get_results(search_term):
    url = "https://www.google.com/"
    browser.get(url)
    search_box = browser.find_element_by_xpath("//input [@title='Pesquisar']")
    search_box.send_keys(search_term)
    search_box.submit()
    image_button = browser.find_element_by_link_text("Imagens")
    image_button.click()
    href = browser.find_element_by_xpath('//*[@id="rg_s"]/div[1]/a[1]').get_attribute("href")
    print("href: " + str(href))
    browser.get(href)
    time.sleep(1)
    src = browser.find_element_by_xpath('//*[@id="irc_cc"]/div[2]/div[1]/div[2]/div[1]/a/img').get_attribute("src")
    print("src: " + str(src))
    try:
        arquivo = os.path.join("D:/A/scriptm/Redbone", i + ".png")
        urllib.request.urlretrieve(str(src), arquivo)
        print("saved!\n")
    except:
        print("error saving!\n")


searchterms = (finalwords)
for i in searchterms:
    print(i)
    get_results(i)

该脚本首先是“在新选项卡上打开图像”并下载高分辨率图像。但是在无头模式下,它会下载一个低分辨率的,关于如何解决这个问题的任何想法?

标签: pythonseleniumgoogle-chrome-headless

解决方案


您可以尝试设置窗口大小

options.AddArgument("--window-size=1920,1080"); //c#

但是,如果您从某个系统帐户而不是以用户身份运行代码,它可能无济于事。你可以在这里读到它:

https://www.reddit.com/r/selenium/comments/70v46v/chrome_resolution_problem_on_windows_server/

Firefox 允许您将窗口大小设置为大于系统分辨率,但我还不能让它在服务器上运行。


推荐阅读