【问题标题】:How to get the final url for a short link using python?如何使用 python 获取短链接的最终 url?
【发布时间】:2020-09-05 13:51:07
【问题描述】:

我有以下网址:

  • 短网址:https://ekaro.in/enkr2020090345700421

  • 第一次重定向: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

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

这是我用来进行第一次重定向的代码:

from bs4 import BeautifulSoup
import requests

url = 'https://ekaro.in/enkr2020090345700421'

source = requests.get(url).text
print(source)

这将返回以下 html 文档:

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
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
<meta name="robots" content="NOINDEX, NOFOLLOW" />
                    <meta property="og:title" content="Amazon Store" />
            <meta property="og:type" content="website" />
            <meta property="og:image" content="https://asset20.ckassets.com/resources/image/stores/amazon.png" />
                
                    <script>
                var cashbackUrl = "https://www.amazon.in/gp/product/B08645RXJ6/ref=ox_sc_act_title_1?smid=AT95IG9ONZD7S&psc=1&ck&tag=EK003221-21";
                if(cashbackUrl != ''){
                    var dataLayer = [{
                        'event': 'exitclick',
                        'customerId': '103894',
                        'storeName': "Amazon Store",
                        'exitID': 'ENKR20200905A14248334',
                        'eventCallback': function() {
                            window.location = cashbackUrl
                        }
                    }];
                } else {
                    var dataLayer = [{
                        'event': 'exitclick',
                        'customerId': '103894',
                        'storeName': "Amazon Store",
                        'exitID': 'ENKR20200905A14248334'
                    }];
                }
            </script>
                
            <!-- Google Tag Manager -->
            <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
            new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
            j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
            'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
            })(window,document,'script','dataLayer','GTM-MDR24WQ');</script>
            <!-- End Google Tag Manager -->
        
    
</head>
<body>
    
    <!-- Google Tag Manager (noscript) -->
    <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MDR24WQ"
    height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
    <!-- End Google Tag Manager (noscript) -->
    
</body>
</html>

Process finished with exit code 0

我需要的目标网址在:

<script> 
var cashbackUrl = .......
</script>

如何提取var cashbackUrl

【问题讨论】:

标签: python-3.x beautifulsoup response


【解决方案1】:
import requests
import re

url=requests.get('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').text
amz_link = re.findall(r'cashbackUrl = .*;', url)
print(amz_link[0].replace('cashbackUrl =', '').replace('"', '').replace(';', '').strip())

是我从中获得帮助的工作代码

Getting javascript variable value while scraping with python

感谢Kamikaze_goldfish的回答,感谢F M的支持和αԋɱҽԃ αмєяιcαη 的自发回复。

解决办法是

amz_link = re.findall(r'cashbackUrl = .*;', url)
print(amz_link[0].replace('cashbackUrl =', '').replace('"', '').replace(';', '').strip())

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-06-21
    • 1970-01-01
    • 1970-01-01
    • 2012-01-19
    • 1970-01-01
    • 2014-05-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多