Загрузка файлов на Google Drive с помощью Beautifulsoup - PullRequest
1 голос
/ 17 апреля 2019

Мне нужно загрузить файлы с помощью Beautifulsoup на мой Google-привод с помощью колаборатории.

Я использую код ниже:

u = urllib.request.urlopen("https://s3.amazonaws.com/video.udacity-data.com/topher/2018/November/5bf32290_turnstile/turnstile.html")
html = u.read()

soup = BeautifulSoup(html, "html.parser")
links = soup.find_all('a')

Мне нужны только ссылки, имя которых содержит «1706».Итак, я пытаюсь:

for link in links:
  files = link.get('href')
  if '1706' in files: 
    urllib.request.urlretrieve(filelink, filename)

и не работает.Msgstr "Ошибка типа: аргумент типа 'NoneType' не повторяется".Хорошо, я знаю, почему эта ошибка, но я не могу исправить, чего не хватает.

Используя это

urllib.request.urlretrieve("https://s3.amazonaws.com/video.udacity-data.com/topher/2018/November/5bf32142_turnstile-170624/turnstile-170624.txt", 'turnstile-170624.txt')

, я могу получить отдельные файлы.Но я хочу каким-то образом загрузить все файлы (которые содержат «1706») и сохранить эти файлы на моем диске Google.

Как я могу это сделать?

Ответы [ 2 ]

0 голосов
/ 18 апреля 2019

Изменить с

soup.find_all('a')

На это вместо

soup.select('a[href]')

Будет выбран только тег с атрибутом href.

0 голосов
/ 17 апреля 2019

Вы можете использовать атрибут = значение css селектор с оператором * содержит указание значения атрибута href содержит 1706

links = [item['href'] for item in soup.select("[href*='1706']")]
...