2016-04-08 43 views
0

Bunun gibi bir web sayfasını taramıyorum http://www.allocine.fr/film/fichefilm-215143/similaire/.Paletli ve "gizli" bağlantı

Bağlantı verilen her film için geri almak istiyorum. hepsi aynı şekilde inşa edilir çünkü tüm filmler için iyi çalışır

soup = BeautifulSoup(get_HTML_sim_movies(allocine_id), "html.parser") 
    allocine_ids_sim = [] 

    sim_movie_links = soup.find_all("h2") 
    for sim_movie_html in sim_movie_links: 
     fiche_film = sim_movie_html.find('a').get('href').split("/")[2] 

:

<h2 class="meta-title"> 
    <strong> 
     <a class="meta-title-link" href="/film/fichefilm_gen_cfilm=193113.html">Captain America, le soldat de l&#039;hiver</a> 
    </strong> 
</h2> 

Ama sonuncusu biraz farklıdır yüzden böyle bir şey yapacak bir işlev yaptı Ben kalmadan tarayıcımla eleman başlığı incelemek zaman: class="meta-title-link", ben class="xXx meta-title-link"

var ve ben taranamamasına veya bağlantı kaybolur ve kaynak koduna baktığınızda ile değiştirildiği: data-ac="==L2ZpbG0vZmljaGVmaWxtX2dlbl9jZmlsbT0yMjY2NDQuaHRtbA=="

<h2 class="meta-title"> 
    <strong> 
     <span class="meta-title-link" data-ac="==L2ZpbG0vZmljaGVmaWxtX2dlbl9jZmlsbT0yMjY2NDQuaHRtbA==">Avengers Confidential : La Veuve Noire et Le Punisher</span> 
    </strong> 
</h2> 

Bağlantıyı nasıl alacağınızı ve bunun neden olduğunu biliyor musunuz?

cevap

1

O base64 biçimindedir:

data-ac="==L2ZpbG0vZmljaGVmaWxtX2dlbl9jZmlsbT0yMjY2NDQuaHRtbA==" 

şerit ilk iki sonra

import base64 

base64.b64decode("L2ZpbG0vZmljaGVmaWxtX2dlbl9jZmlsbT0yMjY2NDQuaHRtbA==") 

onu deşifre edecek /film/fichefilm_gen_cfilm=226644.html

+0

Ve neden karakter == onlar bu tür şeyleri kullanıyorsunuz? – mel

+0

Bu onların uygulama tasarımı, Ve ben burada gözlemledim Ve burada öznitelik ** data-ac ** nerede ve bu veri ayrıştırmak ve etiketler onfly hazırlanıyor javascript sayfada tutturur bilgi var. Bunu tarayıcıda inceleyerek görebilirsiniz. - Sebebi tarayıcıları karıştırmak olabilir. – kakurala