从没有文件名的网站下载文件? Python 3.4

时间:2016-01-14 14:35:33

标签: python python-3.x request

我不知道从哪里开始,我不得不承认我对python和网站的了解有限。然而,在过去,我已经完成了api的一些请求,并从网站上访问了一两个文件,但我有一些例子可以构建。在这种情况下,我没有书面的例子来帮助我完成这个过程,所以我真的不知道从哪里开始,或者是否"请求"甚至可以走了。

我所拥有的是经销商的网站,其中包含包含产品信息的文件。 如果我手动下载此文件,则必须登录,导航到网站的下载部分。此时会出现一个弹出窗口,我选择要下载的品牌,我可以选择我想要收集的数据,一个用于命名文件的文本框和一个没有网址的下载按钮。

我确信所有这些看起来都很模糊,因为我不知道在这一点上哪些信息会有所帮助。

右手直接推动会很棒!! 谢谢 Screen shot of popup

3 个答案:

答案 0 :(得分:0)

您可以使用Request之类的http库来下载它。但是你可以提供用户名和密码,你可以从它的例子中学习。

答案 1 :(得分:0)

听起来可能没有API,在像这样的实例中使用selenium之类的Web自动化解决方案可以获得所需的结果。

对于您的情况,您需要find the button elements然后click them

从他们的基本例子:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys

driver = webdriver.Firefox()
driver.get("http://www.python.org")
assert "Python" in driver.title
elem = driver.find_element_by_name("q")
elem.send_keys("pycon")
enter code here`elem.send_keys(Keys.RETURN)

根据您的示例html代码,在您加载页面后,您可以使用以下内容查找按钮并单击它

elem = driver.find_element_by_id("downloadBtn")
elem.click()

答案 2 :(得分:0)

如果您要下载的网站没有JavaScript,则需要解析才能导航到您希望的文件,请考虑使用RoboBrowser。硒可能有点矫枉过正。

这是一个基本的例子:

robo = RoboBrowser(history=True, parser="html.parser")
robo.open("http://www.python.org")
search = robo.get_form(action="/search/")
search["q"].value = "Really awesome search query"
robo.submit_form(search)
相关问题