Получить загрузку файла, вызванную запросом 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, исключено. Это будут первые вещи, которые нужно проверить.

Другие вопросы по тегам