Ich krabbele eine Web-Seite wie diese http://www.allocine.fr/film/fichefilm-215143/similaire/.Crawler und "versteckter" Link
Ich möchte für jedes Filme abrufen, es ist Link. Also habe ich eine Funktion, die so etwas wie tun:
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]
Es ist für alle Filme gut funktionieren, da sie alle die gleiche Art und Weise bauen:
<h2 class="meta-title">
<strong>
<a class="meta-title-link" href="/film/fichefilm_gen_cfilm=193113.html">Captain America, le soldat de l'hiver</a>
</strong>
</h2>
Aber die letzte ist ein bisschen anders wenn ich das Element Titel mit meinem Browser anstelle von inspizieren: class="meta-title-link"
habe ich class="xXx meta-title-link"
und wenn ich es kriechen oder den Quellcode Blick auf den Link verschwinden und ist ersetzen durch: 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>
Wissen Sie, wie Sie den Link bekommen und warum dies passiert?
Und warum sind sie diese Art von Dingen? – mel
Es ist ihre Anwendung Design, Und was ich hier beobachtet, ist, wo das benutzerdefinierte Attribut ** Daten-ac ** ist, die Anker-Informationen darin hält und auf Seite laden Javascript Parsen dieser Daten und die Vorbereitung Tags onfly. Sie können dies durch die Überprüfung im Browser sehen. - Könnte der Grund sein, Crawler zu verwirren. – kakurala