2015-06-16 2 views
-1

Я пытаюсь получить видео-URL из ссылок на этой странице. Видео ссылку можно посмотреть на https://in.news.yahoo.com/video/jaguar-fighter-aircraft-crashes-near-084300217.html. (Открыть в Chrome)selenium работает на локальном, а не на сервере azure

Для этого я написал хром веб-код драйвера, связанные, как показано ниже:

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 

Это прекрасно работает на моей локальной системе, но когда я бегу на моем лазурного сервере не дает никакого результата в s.find_element_by_tag_name('video').get_attribute('src')

Я установил хром на свой azureserver.

Update:

Пожалуйста, смотрите, запросы и BeautifulSoup я уже пробовал, но, как Yahoo загружает HTML содержимое динамически с JSON, я не мог получить его, используя их.

И да, сервер azure - это простая система Linux с доступом к командной строке. Не любое приложение.

ответ

0

Я попытался воспроизвести вашу проблему, используя ваш код. Тем не менее, я обнаружил, что на этой странице нет тега с именем video ('https://in.news.yahoo.com/video/jaguar-fighter-aircraft-crashes-near-084300217.html') (с помощью IE и Chrome для тестирования). Я использовал инструмент разработки для проверки HTML-кода, как эта картина:

enter image description here кажется, что эта страница используется флэш-плеер для воспроизведения видео, а не HTML5 управления видео. По этой причине я предлагаю вам проверить свой код, правильно ли используется имя тега. Любые проблемы, пожалуйста, не стесняйтесь, дайте мне знать.

-1

Мы попытались воспроизвести ошибку на нашей стороне. Мне не удалось заставить хром-драйвер работать, но я попробовал драйвер firefox, и он работал нормально. Он смог загрузить страницу и получить ссылку через URL-адрес.

Можете ли вы изменить свой код, чтобы распечатать исключение и отправить его нам, чтобы узнать, где работает скрипт?

Изменить код:

except: 
    return 

try 

сделать

except Exception,e: print str(e) 

Отправить нам исключение, так что мы могли посмотреть.

Смежные вопросы