【问题标题】:Downloading a mp3 with requests module?下载带有请求模块的 mp3?
【发布时间】:2016-10-28 01:18:15
【问题描述】:

我在理解模块请求时遇到了麻烦,我知道 http 有 post、get、put、delete 方法,但我想我需要更多地了解请求是如何工作的,我已经阅读了文档但我仍然有很多关于如何做某事的问题,这是我第一次尝试在没有硒或机械化的情况下为网络制作脚本

我试图与vubey.yt 进行交互,但我不能让我的 vubey url 改变我想要的(或者我手动使用 pag 时看到的)我可以发送我的数据,它会改变 url,但是如果我复制该网址并手动导航,它什么也不做......所以我不明白发生了什么,因为我没有任何视觉线索

这是我的代码(python 3.5):

def Descarga(youtubeid):
       # also i have tried only sending videoURL without quality and sub, but is the same
        r = requests.get('https://vubey.yt/', params={'videoURL': youtubeid, 'quality': '320', 'submit': 'Convert+To+MP3'})

        print(r.url, r.status_code)

Descarga("https://www.youtube.com/watch?v=dQw4w9WgXcQ")    

如果有人能给我链接一个教程,让我真正了解如何使用这个模块,或者告诉我我做错了什么或对这个模块有什么误解,我会非常感谢

【问题讨论】:

  • 您应该分析浏览器和 vubey.yt 之间的流量,您会发现它不仅仅是一个 GET。有一个 POST 开头,然后以某种方式将您返回到不同的 URL(有些像 vubey.yt/?download=<uuid>),该页面将向您显示“正在转换...”消息,最后向您显示“单击此处以下载”按钮。使用网络浏览器控制台查看实际情况,然后您一定可以找到您的实现。
  • 有时网站有一个用于脚本的后端 API。我搜索了“vubey api”并得到了几个点击。没有任何东西作为后端 api 立即跳出来,但我从实现者那里得到了this,如果你挖掘可能会有更多信息。
  • 是的,当我使用请求时,我总是会弄清楚浏览器在做什么,通常是按 F12(至少在 Chrome /FFox 中),然后转到“网络”选项卡。在那里,您只需监控浏览器发出的请求并尝试在请求中复制它们。

标签: python python-3.x web python-requests


【解决方案1】:

和我一起看网站代码:

<form class="w-clearfix" name="wf-form-signup-form" data-name="conversionForm" form action="/" method="post" id="conversionForm">

这是一种形式。该表单在同一页面中使用“发布”方法。

<input class="w-input field" id="videoURL" type="text" placeholder="Video URL" name="videoURL" data-name="videoURL" required="required">

第一个数据“videoURL”。

<select class="w-select" id="quality" name="quality" data-name="quality" required="required">

第二个数据“质量”。

<input class="w-button button" type="submit" name="submit" value="Convert To MP3">
</form>

提交按钮并不重要。忽略它。

现在,让我们python化吧。

import requests

video_url = 'https://www.youtube.com/watch?v=C0DPdy98e4c'
quality = '320'

post_data={ 'videoURL': video_url, 'quality': quality }

response = requests.post('https://vubey.yt/', data=post_data)

print(response.url, response.status_code)

现在您可以解析 response.content 并搜索“请稍候”,直到转换完成。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-07-14
    • 2022-01-19
    • 2023-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-15
    相关资源
    最近更新 更多