有幾個問題,使用的Javascript創造了一些代碼,則實際上是有一個標題=「Bandes-annonces」,你在你的輸出中看到兩個標籤是第一次出現與混淆數據是基-64具有嵌入式子(一個或多個)編碼的,則可以在具有AC.config = {
JS的功能之一看到下列情況:
seo: {
obfuscatedPrefix: 'ACr'
},
在源從請求取回每個標籤包含編碼數據如ACrL3ZACrpZGVvL3BsYXllcl9nZW5fY2 1lZGlhPTE5NTYxOTgyJmNmaWxtPTE0NDE4NS5odG1s
你可以看到,如果我們更換前綴ACR和基64解碼剩餘字符串的任何出現:
In [113]: s = "ACrL3ZACrpZGVvL3BsYXllcl9nZW5fY21lZGlhPTE5NTYxOTgyJmNmaWxtPTE0NDE4NS5odG1s"
In [114]: s.replace("ACr", "").decode("base-64")
Out[114]: '/video/player_gen_cmedia=19561982&cfilm=144185.html'
我們拿到的HREF。
如果你想獲得與標題標籤,你可以使用CSS類之一:
trailer = soup.find(class_="icon-play-mini", title="Bandes-annonces")
它,如果我們運行代碼:
In [117]: url = "http://www.allocine.fr/film/fichefilm_gen_cfilm=144185.html"
In [118]: page = requests.get(url)
In [119]: soup = BeautifulSoup(page.content, 'html.parser')
In [120]: trailer = soup.find(class_="icon-play-mini", title="Bandes-annonces")
In [121]: print trailer
<span class="ACrL3ZACrpZGVvL3BsYXllcl9nZW5fY21lZGlhPTE5NTYxOTgyJmNmaWxtPTE0NDE4NS5odG1s item trailer icon icon-play-mini" title="Bandes-annonces">
Bandes-annonces
</span>
給你的第二次出現標題=
然後獲取href:
In [122]: trailer["class"][0].replace("ACr", "").decode("base-64")
Out[122]: '/video/player_gen_cmedia=19561982&cfilm=144185.html'
你可以看到它不會非常直接地從該網站上抓取數據,混淆可能是出於很好的理由,使得拼湊更難,因爲他們很可能不想讓你做它。
看看頁面的來源。它可能會改變與JavaScript。如果是的話,試着用selenium來抓取頁面 –
也許,首先找到的包含'title = bandes-announces'的標籤是span標籤 – iparjono