无法使用python从html内容获取链接

2024-10-02 14:26:51 发布

您现在位置:Python中文网/ 问答频道 /正文

以下是我正在使用的URL:

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

事实上,在这个页面上,我要寻找的链接可能是在加载页面后5秒出现的。在

5秒后,我看到一个post请求: http://www.protect-stream.com/secur.php 有这样的数据:

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

我不知道k值是从哪里来的?在

他们的想法是关于如何使用python获得k值的吗?在


Tags: 数据comhttpurlstream链接www页面
1条回答
网友
1楼 · 发布于 2024-10-02 14:26:51

这不是小事。k参数值“隐藏”在嵌套iframes中的script元素的深处。下面是一个^{}+^{}获取k值的方法:

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)

印刷品:

^{pr2}$

相关问题 更多 >