如何使用Python请求模块接受Youtube Cookie

2024-04-24 14:41:47 发布

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

我不熟悉Python和HTTP。为了便于练习,我创建了一个小函数,用于搜索Youtube并在响应对象中返回搜索结果

def search_yt():
    import requests
    url = 'https://www.youtube.com/results'
    query_string = str(input('Please enter search keyword: '))
    payload = {'search_query': query_string}
    r = requests.get(url, params=payload)
    print(r.text)

问题是我被重定向到一个带有接受按钮的cookie接受页面。这是表格

<form action="https://consent.youtube.com/s" method="POST" style="display:inline;">
<input type="hidden" name="gl" value="NO">
<input type="hidden" name="m" value="0">
<input type="hidden" name="pc" value="yt">
<input type="hidden" name="continue" value="https://www.youtube.com/results?search_query=Michael+Jackson">
<input type="hidden" name="ca" value="r"><input type="hidden" name="x" value="8">
<input type="hidden" name="v" value="cb.20210518-05-p0.no+FX+161">
<input type="hidden" name="t" value="ADw3F8jK04hHEDaOQ6Lo4k3iEAJmnGpVoQ:1621602104080">
<input type="hidden" name="hl" value="no"><input type="hidden" name="src" value="1">
<input type="hidden" name="uxe" value="23983172"><input type="submit" value="Godta" class="button" aria-label="Godta bruken av informasjonskapsler og andre data for formålene som beskrives"/>
</form>

我如何通过这一页


Tags: namehttpsformcomurlinputsearchyoutube
1条回答
网友
1楼 · 发布于 2024-04-24 14:41:47

回答我自己的问题

我注意到cookie的同意值最初设置为同意=PENDING+int,所以我尝试将PENDING改为YES,结果成功了!对于数字,可以使用任意int=>;0

def search_yt():
    import requests
    url = 'https://www.youtube.com/results'
    query_string = str(input('Please enter search keyword: '))
    payload = {'search_query': query_string}
    r = requests.get(url, params=payload, cookies={'CONSENT': 'YES+42'})
    print(r.text)

相关问题 更多 >