selenium python的这段代码运行得很慢?

mgdq6dx1  于 2023-02-04  发布在  Python
关注(0)|答案(1)|浏览(179)

我试图通过 selenium 的使用得到下面的网址截图,但当我运行这段代码,它运行非常非常非常慢。
最令人惊奇的是它有时运行正常,但大多数时候它运行得很慢。所以我需要帮助。
我只是把截图和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()

编辑:-

根据基里尔的评论,我做了一些改变,看看它实际上停止。

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,但在driver.get()集之后不能打印test1,这意味着代码在driver.get()之后卡住了
这就是问题所在。

nfg76nw0

nfg76nw01#

在我看来,你的网站需要很长时间才能加载。你可以尝试以下操作:

  • 检查连接是否不良//使用LAN而不是Wlan
  • 以线程方式加载页面(driver.get()),然后继续,即使页面还没有完全加载。
  • 如果你使用免费或便宜代理,考虑买一个更快的。

相关问题