【问题标题】:selenium works on local and not on azure serverselenium 在本地而不是在 azure 服务器上工作
【发布时间】:2015-06-16 09:33:49
【问题描述】:

我正在尝试从此页面上的链接获取视频网址。视频链接可以在https://in.news.yahoo.com/video/jaguar-fighter-aircraft-crashes-near-084300217.html 上看到。 (在 Chrome 中打开)

为此,我编写了 chrome web driver 相关代码如下:

from bs4 import BeautifulSoup
from selenium import webdriver
from pyvirtualdisplay import Display

chromedriver = '/usr/local/bin/chromedriver'
os.environ['webdriver.chrome.driver'] = chromedriver
display = Display(visible=0, size=(800,600))
display.start()
driver = webdriver.Chrome(chromedriver)

        driver.get('https://in.news.yahoo.com/video/jaguar-fighter-aircraft-crashes-near-084300217.html')
        try:
            element = WebDriverWait(driver, 20).until(lambda driver: driver.find_elements_by_class_name('yvp-main'))
            self.yahoo_video_trend = []
            for s in driver.find_elements_by_class_name('yvp-main'):
                print "Processing link  - ", item['link']
                trend = item
                print item['description']
                trend['video_link'] = s.find_element_by_tag_name('video').get_attribute('src')
                print 
                print s.find_element_by_tag_name('video').get_attribute('src')
                self.yahoo_video_trend.append(trend)
        except:
            return

这在我的本地系统上运行良好,但是当我在我的 azure 服务器上运行时,它在 s.find_element_by_tag_name('video').get_attribute('src') 上没有给出任何结果

我已经在我的 azureserver 上安装了 chrome。

更新:

请看,requestsBeautifulsoup 我已经尝试过了,但是当 yahoo 从 json 动态加载 html 内容时,我无法使用它们。

是的,天蓝色服务器是具有命令行访问权限的简单 linux 系统。不是任何应用程序。

【问题讨论】:

    标签: python azure selenium web-scraping


    【解决方案1】:

    我尝试使用您的代码重现您的问题。但是,我发现该页面中没有名为video的标签('https://in.news.yahoo.com/video/jaguar-fighter-aircraft-crashes-near-084300217.html')(使用IE和Chrome进行测试)。 我用开发者工具查看了HTML代码,如下图:

    看来这个页面是用flash player来播放视频的,而不是HTML5视频控件。 出于这个原因,我建议你可以检查你的代码是否使用了正确的标签名称。 有任何问题,请随时告诉我。

    【讨论】:

      【解决方案2】:

      我们试图重现我们这边的错误。我无法让 chrome 驱动程序工作,但我确实尝试了 firefox 驱动程序,它运行良好。它能够加载页面并通过 URL 获取链接。

      您能否更改您的代码以打印异常并将其发送给我们,以查看脚本失败的地方?

      更改您的代码:

      except:
          return
      
      try
      

      except Exception,e: print str(e)
      

      将异常发送给我们,以便我们查看。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-08-14
        • 1970-01-01
        • 2021-10-12
        • 1970-01-01
        • 1970-01-01
        • 2016-10-16
        • 2011-09-18
        • 1970-01-01
        相关资源
        最近更新 更多