使用更改的URL机械化下载文件

时间:2018-11-01 12:28:01

标签: python mechanize

嗨,我已经使这段代码可以下载文件了,但是'ID'之后的文件名会更改值,我如何才能使脚本识别出来?

import mechanize

br = mechanize.Browser()
br.set_handle_robots(False)
br.open('https://google.com')
br.select_form(nr=0)
br.form['clientUsername'] = 'companyname'
br.form['username'] = 'username'
br.form['password'] = 'password'
sub = br.submit()
print sub.geturl()

br.retrieve('https://www.google.com/examplefileID=', 'testfile.csv') [0]

1 个答案:

答案 0 :(得分:0)

在查看了澄清文件名的注释之后,您似乎可以在发出请求之前使用内置的datetime Python模块获取日期和时间。这样的事情应该可以为您提供所需的东西:

import mechanize
import datetime

br = mechanize.Browser()
br.set_handle_robots(False)
br.open('https://google.com')
br.select_form(nr=0)
br.form['clientUsername'] = 'companyname'
br.form['username'] = 'username'
br.form['password'] = 'password'
sub = br.submit()
print sub.geturl()

# Generate a filename based off a date and time stamp
# use datetime.now() if you don't care about utc
timestamp = datetime.datetime.utcnow().strftime('%m_%d_%Y_%H_%M_%S')
filename = 'properties_' + timestamp + '.csv'

br.retrieve('https://www.google.com/examplefileID=', filename) [0]

注意。此解决方案使用UTC,因此没有时区,并使用24小时制而不是12小时制。如果要使用12小时格式,请改用.strftime('%m_%d_%Y_%I_%M_%S')%I表示12小时格式。