最近工作需要獲取網(wǎng)頁(yè)的截圖,本來(lái)是使用selenium + phantomjs進(jìn)行截圖,但是卻發(fā)現(xiàn)一些沒(méi)有被封的網(wǎng)頁(yè)保存的截圖卻是404頁(yè)面找不到的畫(huà)面,猜測(cè)有可能是訪(fǎng)問(wèn)網(wǎng)頁(yè)的響應(yīng)時(shí)間超過(guò)默認(rèn)值,由于對(duì)上述兩個(gè)工具不太熟悉,沒(méi)有找到解決方法。如果某位大神路過(guò),還請(qǐng)指教。多謝?。?!
故查閱資料轉(zhuǎn)戰(zhàn)調(diào)用Google訪(fǎng)問(wèn)然后截圖,網(wǎng)頁(yè)找不到的問(wèn)題解決了又出現(xiàn)了滾動(dòng)條的限制無(wú)法截取更多內(nèi)容的問(wèn)題。經(jīng)過(guò)多方查找資料和實(shí)驗(yàn),最終總結(jié)出了,如何調(diào)節(jié)滾動(dòng)窗口大小來(lái)截取圖片。代碼如下(如果有更好的方法,希望能夠與我溝通,再次感謝):
#調(diào)用谷歌瀏覽器截圖
#now = time.strftime("%Y-%m-%d-%H_%M_%S",time.localtime(time.time()))
image_path = data_path +'/image'
if not os.path.exists(image_path ):
os.makedirs(image_path )
#os.makedirs(datapath +'/image')
chrome_options = webdriver.ChromeOptions()
#ua = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.101 Safari/537.36'
#chrome_options.add_argument('user-agent="%s"' % ua)
chrome_options.add_argument('--headless')
chrome_options.add_argument('--no-sandbox')
chrome_options.add_argument('window-size=2560x1440')
#chrome_options.add_argument("--start-maximized")
driver = webdriver.Chrome(executable_path=r"D:\chromedriver.exe", chrome_options=chrome_options)
for i in range (0,len(user_table)):
j = 0
url2 = user_table.ix[i,1]
user_account = user_table.ix[i,0]
print (user_account)
chrome_flag = False
while not chrome_flag:
try:
driver.get(url2)
js="var q=document.documentElement.scrollTop=(350)"
driver.execute_script(js)
picName = image_path +'/'+ user_account + ".png"
driver.save_screenshot(picName)
#driver.close()
except:
j +=1
if j <= 5:
print ('[%s] HTTP請(qǐng)求失?。。?!正在準(zhǔn)備重發(fā)。。。')
time.sleep(2)
continue
else:
break
chrome_flag = True
driver.quit()