我正在制作一个简单的抓取工具作为我的第一个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)
该脚本首先是“在新选项卡上打开图像”并下载高分辨率的图像。但是在无头模式下,它会下载一个低分辨率的图片,有关如何解决此问题的任何想法?
答案 0 :(得分:0)
您可以尝试设置窗口大小
options.AddArgument("--window-size=1920,1080"); //c#
但是,如果您从某个系统帐户而不是用户身份运行代码,则可能无济于事。你可以在这里阅读:
https://www.reddit.com/r/selenium/comments/70v46v/chrome_resolution_problem_on_windows_server/
Firefox 允许您将窗口大小设置为大于系统分辨率,但我还无法使其在服务器上运行。