使用请求模块我最终想下载一首歌。如果你前往youtube-mp3.org,有一个输入栏和一个转换按钮。转换完成后不久,有一个下载按钮。现在我想用我的python脚本完成这个过程。
到目前为止,我有这个:def download_song(song_name):
import requests
with requests.Session() as c:
url = r"http://www.youtube-mp3.org/"
c.get(url)
它几乎没有...我试图检查那里的网站上的文档。我不认为我需要任何身份验证。以前我使用过bs4的请求来查找页面上的链接和信息,从未试图输入。
感谢您的帮助
答案 0 :(得分:2)
只需向网址发送请求
当您点击&#39;提交&#39;在<form>
元素内的按钮,浏览器会收集表单内所有<input>
元素的所有数据,在这种情况下,它会收集您放置视频网址的文本输入内容。
然后,浏览器向表单“动作”中指定的URL发送请求。使用表格&#39;方法&#39;中指定的方法的属性属性。
<form method="get" action="/" id="submit-form">
<input id="youtube-url" value="http://www.youtube.com/watch?v=KMU0tzLwhbE" onclick="sAll(this)" autocomplete="off" type="text">
<div id="btns">
<input id="submit" value="Convert Video" type="submit">
</div>
</form>
您必须像浏览器一样提出请求。您现在拥有要转换的视频的网址 你必须为表格中指定的网址创建一个HTTP请求(在这种情况下&#39; /&#39; - 我认为这相对于网页的当前网址,但我不是确保)使用表单中指定的方法(在本例中为GET)。 有关如何发送表单编码数据的信息,请参阅the doc
您转换视频的请求应如下所示:
page_url = 'http://www.youtube-mp3.org/'
video_url = "http://www.youtube.com/watch?v=KMU0tzLwhbE"
resp = requests.get(page_url, data={'youtube-url': video_url})
在&#39;开发者工具&#39;在您的浏览器中,您可以捕获浏览器在您点击“转换视频”时发送的HTTP请求,这可能会有所帮助