【问题标题】:How to cronly fill ajax form in django app?如何在 django 应用程序中填写 ajax 表单?
【发布时间】:2016-03-30 15:05:06
【问题描述】:

我有以下问题:

我需要我的应用程序 1. 前往https://airqualityegg.wickeddevice.com/download并填写表格 (我找到了 Django-cron 包。使用它是个好主意吗?) 2.等待,等js效果后会出现“下载文件”按钮 3. 单击该按钮下载 .zip 文件 4. 从此 .zip 存档 .csv 文件中提取并使用它。 每 1 小时

我要做什么?

【问题讨论】:

  • 你可以使用mechanize
  • 你为什么使用 django 来做这个?编写一个独立的 Python 脚本(或任何适合您的语言)然后将其配置为每 1 小时运行一次(使用 cron、systemd 计时器等)更有意义。如果数据在django应用中使用,并且你想将它保存在模型中,那么你可以做一个管理命令,但最终你描述的整个过程并没有真正与django耦合。

标签: django cron


【解决方案1】:

我用过 selenium webdriver:

def get_zipfile_file_link(self):
    display = Display(visible=0, size=(1024, 768))
    display.start()
    driver = webdriver.Firefox()
    driver.get("https://airqualityegg.wickeddevice.com/download")
    driver.find_element_by_id("serial_numbers").send_keys(self.egg_id)
    driver.find_element_by_id("start_date").send_keys(timezone.now() - timedelta(hours=5))
    driver.find_element_by_id("zipfilename").send_keys("q")
    driver.find_element_by_id("download_submit").click()
    WebDriverWait(driver, 150).until(lambda d: d.find_element_by_xpath('/html/body/table/tbody/tr[9]/td[2]/a'))
    url = driver.find_element_by_xpath('/html/body/table/tbody/tr[9]/td[2]/a').get_attribute('href')
    driver.close()
    display.stop()
    return url

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-07
    • 2011-09-09
    • 2011-07-15
    相关资源
    最近更新 更多