无头Chrome下载低分辨率图片

时间:2019-04-29 02:22:23

标签: python selenium google-chrome-headless

我正在制作一个简单的抓取工具作为我的第一个python脚本。在普通的chrome中一切正常,但是当我尝试无头chrome时,下载的所有图像的分辨率都非常低

正在从Google下载图像,我想问题是Google没有加载高分辨率图像,因为没有显示。

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)

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

1 个答案:

答案 0 :(得分:0)

您可以尝试设置窗口大小

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

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

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

Firefox 允许您将窗口大小设置为大于系统分辨率,但我还无法使其在服务器上运行。