【问题标题】:Could not get link from html content using python无法使用 python 从 html 内容中获取链接
【发布时间】:2016-10-11 15:17:47
【问题描述】:

这是我正在使用的网址:

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

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

我在 5 秒后看到一个发帖请求: 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”值有什么想法吗?

【问题讨论】:

    标签: python web-scraping urllib2 urllib


    【解决方案1】:

    这不会是微不足道的。 k 参数值“隐藏”在嵌套 iframe 内的 script 元素的深处。这是获取k 值的requests + BeautifulSoup 方法:

    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)
    

    打印:

    YjfH9430zztSYgf7ItQJ4grv2cvH3mT7xGwv32rTy2HiB1uuy_c,Sr7mOTQVUhVEcMlZeINICKegtzYsseabOlrDb_a,LmiP80NGUvAbK1xhbZGC6OWMtIaNF12f0mYA4O0WXhmwUC0ipkPRkLQepYHLyF1U0xvsrzHMcK2XBCeY3_a,O_b,
    

    【讨论】:

      猜你喜欢
      • 2023-03-26
      • 1970-01-01
      • 2022-01-02
      • 1970-01-01
      • 2018-12-25
      • 1970-01-01
      • 2016-03-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多