【问题标题】:How to extract var (values) from <script> of html using beautifulsoup如何使用beautifulsoup从html的<script>中提取var(值)
【发布时间】:2020-09-05 10:46:22
【问题描述】:

我正在使用

import requests
from bs4 import BeautifulSoup

source = requests.get('www.randomwebsite.com').text
soup = BeautifulSoup(source,'lxml')
details= soup.find('script')

这将返回以下脚本。

     <script>
var Url = "https://www.example.com";
                if(Url != ''){code}
 else {code
}
  </script>

我希望输出如下。 https://www.example.com

【问题讨论】:

    标签: python html beautifulsoup


    【解决方案1】:
    import re
    
    text = """
         <script>
    var Url = "https://www.example.com";
                    if(Url != ''){code}
     else {code
    }
      </script>
    """
    
    
    match = re.search('Url = "(.*?)"', text)
    
    print(match.group(1))
    

    输出:

    https://www.example.com
    

    【讨论】:

    • 试过这个但没有运气。没有返回
    • tracking.earnkaro.com/visitretailer/… 我需要脚本中的 var 作为 cashbackUrl
    • 是的,请使用我的代码获取脚本。此链接重定向到亚马逊。我需要最终链接,但是当我运行代码时它不会重定向。它返回一个 java 脚本的 html 我的目标是获得亚马逊的最终链接
    【解决方案2】:

    要打印cashback_url,你可以试试这个脚本:

    import re
    import requests
    
    
    url = 'https://tracking.earnkaro.com/visitretailer/508?id=103894&shareid=ENKR2020090345700421&dl=https%3A%2F%2Fwww.amazon.in%2Fgp%2Fproduct%2FB08645RXJ6%2Fref%3Dox_sc_act_title_1%3Fsmid%3DAT95IG9ONZD7S%26psc%3D1'
    html_data = requests.get(url).text
    
    cashback_url = re.search(r'var cashbackUrl = "(.*?)"', html_data).group(1)
    
    print(cashback_url)
    

    打印:

    https://www.amazon.in/gp/product/B08645RXJ6/ref=ox_sc_act_title_1?smid=AT95IG9ONZD7S&psc=1&ck&tag=EK003221-21
    

    【讨论】:

      猜你喜欢
      • 2023-04-08
      • 2022-01-06
      • 1970-01-01
      • 2019-05-02
      • 1970-01-01
      • 2020-06-06
      • 2015-04-13
      • 2019-05-11
      • 2019-05-24
      相关资源
      最近更新 更多