2014-12-23 2 views
1

Я пытаюсь получить название фильма на IMDb:Как завить элемент, который не бывает на Pageload

http://www.imdb.com/title/tt0049902/

Однако, если я:

$ curl http://www.imdb.com/title/tt0049902/ 

Титул, который содержится, - Un condamné à mort s'est échappé ou Le vent souffle où il veut, а не «Человек сбежал», чего я хочу. Вот HTML от завитка ответа:

<h1 class="header"> <span class="itemprop" itemprop="name">Un condamné à mort s'est échappé ou Le vent souffle où il veut</span> 
     <span class="nobr">(<a href="/year/1956/?ref_=tt_ov_inf" 
>1956</a>)</span> 
</h1> 

Это похоже на английское название должно быть вставлено после первоначальной загрузки страницы. Как я могу получить этот титул?

+0

Не похоже, что есть способ получить его строго из исходного дампа HTML, который вы получаете от завитка. Возможно, лучше использовать их [официальный API] (http://www.omdbapi.com/), а не очищать их веб-страницу. – huu

+0

, если он не в источнике, тогда он, вероятно, будет впрыснут скриптом. Вам нужен браузер без заголовка, чтобы получить сгенерированный html – charlietfl

+0

На самом деле, как я только что ответил, похоже, что все, что вам нужно, это указать соответствующий заголовок 'Accept-Language', поэтому я считаю, что javascript не задействован (но я не конечно, поэтому я оставил этот тег), хотя я на 100% уверен, что python нет (поэтому я удалил этот бродячий тег). Второе предложение @ HuuNguyen предпочитает официальные API-интерфейсы по очистке, в любом случае :-) –

ответ

2
$ curl --header "Accept-Language: en" http://www.imdb.com/title/tt0049902/ > b.txt 
$ grep 'meta.*title' b.txt 
<meta property="og:url" content="http://www.imdb.com/title/tt0049902/" /> 
<meta property='og:title' content="A Man Escaped (1956)" /> 
<meta name="title" content="A Man Escaped (1956) - IMDb" /> 

так что кажется, что --header "Accept-Language: en" помогает в этом случае (в то время, без указания, что заголовок, вы получаете оригинальный язык фильма - французский).

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