Получить загрузку файла, вызванную запросом Python
Я хочу захватить файл, который загружается при передаче определенного URL в Python. Проблема в том, что загруженный файл НЕ возвращается сервером. Файл загружается, когда я передаю тот же URL-адрес в браузере, но не когда я делаю это через urllib2.urlopen()
, Есть ли способ запечатлеть этот, казалось бы, побочный эффект в питоне? Это то, что я до сих пор.
#!/usr/bin/env python
import urllib
import urllib2
import re
import sys
import os
def main(sem_id):
url = '<url>'
for i in range(1,71):
if i < 10:
rollNo = '<roll_number>0%s'%i
else:
rollNo = '<roll_number>%s'%i
values = { 'id':sem_id, 'regno':rollNo, 'sum':100, 'sessionok':'yes' }
data = urllib.urlencode(values)
url = url + '?' + data
req = urllib2.Request(url)
req.add_header('User-agent', 'Mozilla/5.0 (Linux i686)')
response = urllib2.urlopen(req,timeout=100)
result = response.read()
with open('%s.pdf'%rollNo,'w') as f:
f.write(result)
if __name__ == '__main__':
assert len(sys.argv) == 2
sem_id = sys.argv[1]
main(sem_id)
1 ответ
Мы не сможем диагностировать это, если вы не скажете нам, что это возвращает. Если вам нужен какой-либо логин для доступа к нему, он не будет работать, потому что в Python нет файлов cookie вашего браузера. Python также не будет автоматически следовать за некоторыми типами перенаправлений, и все, что зависит от Javascript, исключено. Это будут первые вещи, которые нужно проверить.