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

2024-06-12 06:41:06 发布

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

我不知道从哪里开始,我不得不承认我对python和网站的了解是有限的。然而在过去,我从一个api做了一些请求,从一个网站访问了一两个文件,但我有一些例子可以借鉴。在这种情况下,我没有书面的例子来帮助我通过这个过程,所以我真的不知道从哪里开始,或者“请求”是不是一个好办法。在

我所拥有的是一个分销商的网站,它有一个包含产品信息的文件。 如果我要手动下载这个文件,我必须登录,导航到网站的下载部分。此时会出现一个弹出窗口,在这里我选择要下载的品牌,我可以选择要收集的数据,一个文本框来命名文件,还有一个没有url的下载按钮。在

我确信这一切看起来相当模糊,因为我不知道什么信息会有帮助。在

在右边直接推一下太好了!! 谢谢 Screen shot of popup


Tags: 文件数据api信息产品网站过程情况
3条回答

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

听起来可能没有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代码,在加载页面之后,您可以使用以下命令找到按钮并单击它

^{pr2}$

如果您希望从中下载的站点没有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)

相关问题 更多 >