Загрузка PDF-файлов с файлами python, загруженных, но не доступных для открытия [duplicate]

В javascript мы можем получить доступ с помощью:

  • точечной нотации - foo.bar
  • квадратных скобок - foo[someVar] или foo["string"]

Но только второй случай позволяет динамически обращаться к свойствам:

var foo = { pName1 : 1, pName2 : [1, {foo : bar }, 3] , ...}

var name = "pName"
var num  = 1;

foo[name + num]; // 1

// -- 

var a = 2;
var b = 1;
var c = "foo";

foo[name + a][b][c]; // bar
3
задан Filipe Manuel 27 September 2013 в 17:45
поделиться

2 ответа

Это может быть проще с wget, потому что тогда у вас есть полная мощность wget (пользовательский агент, следуйте, игнорируйте robots.txt ...), если необходимо:

import os

names_urls = zip(names, urls)

for name, url in names_urls:
    print('Downloading %s' % url)
    os.system('wget %s' % url)
3
ответ дан Balzer82 22 August 2018 в 03:01
поделиться

Это будет записывать все файлы со страницы с их исходными именами файлов в каталог pdfs/.

import requests
from bs4 import BeautifulSoup as bs
import urllib2


_ANO = '2013/'
_MES = '01/'
_MATERIAS = 'matematica/'
_CONTEXT = 'wp-content/uploads/' + _ANO + _MES
_URL = 'http://www.desconversa.com.br/' + _MATERIAS + _CONTEXT

# functional
r = requests.get(_URL)
soup = bs(r.text)
urls = []
names = []
for i, link in enumerate(soup.findAll('a')):
    _FULLURL = _URL + link.get('href')
    if _FULLURL.endswith('.pdf'):
        urls.append(_FULLURL)
        names.append(soup.select('a')[i].attrs['href'])

names_urls = zip(names, urls)

for name, url in names_urls:
    print url
    rq = urllib2.Request(url)
    res = urllib2.urlopen(rq)
    pdf = open("pdfs/" + name, 'wb')
    pdf.write(res.read())
    pdf.close()
5
ответ дан samstav 22 August 2018 в 03:01
поделиться
  • 1
    @ filipe-manuel Я проверил это и успешно загрузил файлы. Это работало для вас? – samstav 5 October 2013 в 21:52
Другие вопросы по тегам:

Похожие вопросы: