爬虫和 "hidden" link
Crawler and "hidden" link
我正在抓取 web-page 像这样的 http://www.allocine.fr/film/fichefilm-215143/similaire/。
我想为每部电影检索 link。所以我做了一个函数,它会做类似的事情:
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'hiver</a>
</strong>
</h2>
但是最后一个有点不同,当我用我的浏览器检查元素标题而不是:class="meta-title-link"
,我有 class="xXx meta-title-link"
当我抓取它或查看源代码时,link 消失并被替换为: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>
您知道如何获得 link 以及为什么会这样吗?
是base64格式:
data-ac="==L2ZpbG0vZmljaGVmaWxtX2dlbl9jZmlsbT0yMjY2NDQuaHRtbA=="
去掉前两个字符 ==
然后
import base64
base64.b64decode("L2ZpbG0vZmljaGVmaWxtX2dlbl9jZmlsbT0yMjY2NDQuaHRtbA==")
它将解码为 /film/fichefilm_gen_cfilm=226644.html
我正在抓取 web-page 像这样的 http://www.allocine.fr/film/fichefilm-215143/similaire/。
我想为每部电影检索 link。所以我做了一个函数,它会做类似的事情:
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'hiver</a>
</strong>
</h2>
但是最后一个有点不同,当我用我的浏览器检查元素标题而不是:class="meta-title-link"
,我有 class="xXx meta-title-link"
当我抓取它或查看源代码时,link 消失并被替换为: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>
您知道如何获得 link 以及为什么会这样吗?
是base64格式:
data-ac="==L2ZpbG0vZmljaGVmaWxtX2dlbl9jZmlsbT0yMjY2NDQuaHRtbA=="
去掉前两个字符 ==
然后
import base64
base64.b64decode("L2ZpbG0vZmljaGVmaWxtX2dlbl9jZmlsbT0yMjY2NDQuaHRtbA==")
它将解码为 /film/fichefilm_gen_cfilm=226644.html