Механизация загрузки файла с изменением URL - PullRequest
0 голосов
/ 01 ноября 2018

Привет, у меня есть этот код, работающий для загрузки файла, однако имя файла после '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 голосов
/ 01 ноября 2018

После просмотра вашего комментария, уточняющего имя файла, похоже, что вы можете использовать встроенный модуль Python datetime , чтобы получить дату и время прямо перед тем, как сделать запрос. Примерно так должно получиться то, что вы хотите:

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-часовой формат.

...