2016-06-10 4 views
1

Hier ist die URL, die Ich bin ein:Link konnte nicht von HTML-Inhalten erhalten Python mit

http://www.protect-stream.com/PS_DL_xODN4o5HjLuqzEX5fRNuhtobXnvL9SeiyYcPLcqaqqXayD8YaIvg9Qo80hvgj4vCQkY95XB7iqcL4aF1YC8HRg_i_i

In der Tat auf dieser Seite auf den Link, ich bin auf der Suche erscheint 5 Sekunden sein kann, nach Laden der Seite

Ich sehe nach 5 Sekunden ein Post Anfrage an: http://www.protect-stream.com/secur.php mit Daten wie folgt:

k=2AE_a,LHmb6kSC_c,sZNk4eNixIiPo_c,_c,Gw4ERVdriKuHJlciB1uuy_c,Sr7mOTQVUhVEcMlZeINICKegtzYsseabOlrDb_a,LmiP80NGUvAbK1xhbZGC6OWMtIaNF12f0mYA4O0WxBkmAtz75kpYcrHzxtYt32hCYSp0WjqOQR9bY_a,ofQtw_b, 

ich nicht bekommen, von wo aus die ‚k‘ Wert herkommt?

Ist das eine Idee, wie wir mit Python den 'k' Wert erhalten können?

Antwort

1

Dies wird nicht trivial sein. Der k Parameterwert ist tief in einem script Element in verschachtelten iframes versteckt. Hier ist ein requests + BeautifulSoup Weg zum k Wert zu erhalten:

import re 
from urlparse import urljoin 
# Python 3: from urllib.parse import urljoin 

import requests 
from bs4 import BeautifulSoup 

base_url = "http://www.protect-stream.com" 
with requests.Session() as session: 
    response = session.get("http://www.protect-stream.com/PS_DL_xODN4o5HjLuqzEX5fRNuhtobXnvL9SeiyYcPLcqaqqXayD8YaIvg9Qo80hvgj4vCQkY95XB7iqcL4aF1YC8HRg_i_i") 

    # get the top frame url 
    soup = BeautifulSoup(response.content, "html.parser") 
    src = soup.select_one('iframe[src^="frame.php"]')["src"] 
    frame_url = urljoin(base_url, src) 

    # get the nested frame url 
    response = session.get(frame_url) 
    soup = BeautifulSoup(response.content, "html.parser") 
    src = soup.select_one('iframe[src^="w.php"]')["src"] 
    frame_url = urljoin(base_url, src) 

    # get the frame HTML source and extract the "k" value 
    response = session.get(frame_url) 
    soup = BeautifulSoup(response.content, "html.parser") 
    script = soup.find("script", text=lambda text: text and "k=" in text).get_text(strip=True) 

    k_value = re.search(r'var k="(.*?)";', script).group(1) 
    print(k_value) 

Drucke:

YjfH9430zztSYgf7ItQJ4grv2cvH3mT7xGwv32rTy2HiB1uuy_c,Sr7mOTQVUhVEcMlZeINICKegtzYsseabOlrDb_a,LmiP80NGUvAbK1xhbZGC6OWMtIaNF12f0mYA4O0WXhmwUC0ipkPRkLQepYHLyF1U0xvsrzHMcK2XBCeY3_a,O_b, 
Verwandte Themen