我正在尝试通过使用硒来获取以下URL的屏幕截图,但是当我运行此代码时,它的运行速度非常非常慢。
最令人惊讶的是它有时运行正常,但大多数情况下运行非常缓慢。所以我需要帮助。
我只是将屏幕截图和URL打印到HTML文件中。所以不要混淆。
waybackurls401 = {}
waybackurls403 = {}
webarchive_urls403 = []
webarchive_urls403.append('https://web.archive.org/web/2012062112352/http://xx.com/')
webarchive_urls403.append('https://web.archive.org/web/2012062112352/http://xx2.com/')
print "\t[~]Findind of 403 staruscode urls\n"
GEckodriver = 'F:/geckodriver.exe'
firefox_options = Options()
firefox_options .add_argument("-headless")
driver = webdriver.Firefox(executable_path=GEckodriver, firefox_options = firefox_options )
for x in webarchive_urls403:
try:
print "\t", x
driver.get(x)
driver.set_page_load_timeout(6)
imgfilename = x.split('web')[-1]
newfile= imgfilename.replace('/', '.') +'.png'
driver.get_screenshot_as_file(newfile)
value = "<td><img src= file:///F:/master/{0} + width='20%' height= '25%'></td>".format(newfile, x)
key = "<tr><td width=\"50%\">{0}</td><td width=\"50%\"><img src= file:///F:/master/{1} width='30%' height= '20%'><br><a href=\"{2}\">URL</a></td></tr>".format(x, newfile, x)
waybackurls403[key] = value
except TimeoutException as ex:
print "Can't take screenshot because. Timeout."
driver.quit()
编辑:-
根据基里尔(Kiril)的评论,我进行了一些更改以查看其实际停止位置。
for x in webarchive_urls403:
print time.time()-start
try:
print "\t", x
print 'test122'
driver.get(x)
print 'test1'
driver.set_page_load_timeout(10)
imgfilename = x.split('web')[-1]
newfile= imgfilename.replace('/', '.') +'.png'
driver.get_screenshot_as_file(newfile)
print 'test2'
value = "<td><img src= file:///F:/AutoRecon-master/{0} + width='20%' height= '25%'></td>".format(newfile, x)
key = "<tr><td width=\"50%\">{0}</td><td width=\"50%\"><img src= file:///F:/AutoRecon-master/{1} width='30%' height= '20%'><br><a href=\"{2}\">URL</a></td></tr>".format(x, newfile, x)
waybackurls403[key] = value
print 'test3'
except TimeoutException as ex:
print ex
driver.quit()
现在您可以看到,我为ex提供了一些随机打印。 print test122
来查看其实际卡在哪里。
我发现我可以在test122
设置后打印test1
但不能打印driver.get()
,这意味着代码被卡在driver.get()之后
现在,这就是整个问题。