Загрузить файл xls с веб-страницы, веб-скребок

Я новичок в мире python, и я хочу заниматься очисткой веб-страниц.

Я хочу загрузить некоторые документы xls со следующего веб-сайта в определенную папку. (например, рабочий стол)

Не могли бы вы помочь мне с этим?

Сайт

https://www.ici.org/research/stats

Я пробовал коды, доступные для подобных вопросов, но мне не удалось заставить их работать в моем случае :(

Большое спасибо.

5 способов использования оповещений, предупреждений, ошибок, сообщений об успехе в Bootstrap
5 способов использования оповещений, предупреждений, ошибок, сообщений об успехе в Bootstrap
Bootstrap - это популярный front-end фреймворк, который делает веб-разработку проще и быстрее. Использование Bootstrap растет по мере того, как все...
Библиотека Bootstrap
Библиотека Bootstrap
Bootstrap - это бесплатный набор инструментов для разработки веб-приложений с открытым исходным кодом, разработанный компанией Twitter. Написанный на...
HTML И VS CODE Для Веб-разработки
HTML И VS CODE Для Веб-разработки
Прежде чем начать кодировать html в "VS CODE", мы должны сначала создать папку и назвать ее x.html, здесь я принимаю x как имя файла, который мы...
Красиво оформленное веб-приложение для отправки HTML писем на PHP
Красиво оформленное веб-приложение для отправки HTML писем на PHP
В современный цифровой век маркетинг электронной почты играет жизненно важную роль в успехе любого бизнеса, а создание красиво оформленных HTML-писем...
Раскройте весь потенциал вашего проекта Angular с помощью экспертного знания команд Angular CLI
Раскройте весь потенциал вашего проекта Angular с помощью экспертного знания команд Angular CLI
Angular - это популярный JavaScript-фреймворк для создания веб-приложений. Одной из ключевых особенностей Angular является его мощный интерфейс...
Соскабливание и загрузка изображений Google с помощью Python
Соскабливание и загрузка изображений Google с помощью Python
Растущая распространенность веб-скрейпинга значительно расширила области его использования. Многие приложения искусственного интеллекта сегодня...
0
0
350
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Чтобы использовать BeautifulSoup, вам сначала нужно понять, как устроен исходный код html. Вы можете найти несколько основных руководств по этому вопросу с помощью простого поиска в Google.

Но самое главное, что html-код содержит элементы с tags, а эти теги имеют attributes. То, что вы ищете, находится под тегами <a> с соответствующей ссылкой в ​​качестве атрибута href. Итак, нам нужно найти все теги <a>, у которых есть атрибут href с расширением excel xls.

Вы можете увидеть это, проверив страницу (щелкните правой кнопкой мыши на странице и выберите «Проверить» или Ctrl-Shift-I, чтобы открыть панель инструментов разработчика. Затем вы можете щелкнуть, чтобы найти нужные вам части с соответствующим html-кодом) и просмотр источника html:

Как только они у вас появятся, вы будете перебирать их, чтобы открыть и сохранить. Мы также будем делать это только для тех, где в тексте/контенте для этого тегового элемента есть «Приложение: Общедоступные столы по всему миру».

Просто убедитесь, что вы выбрали правильный корневой каталог, в котором вы хотите сохранить его, где указано output = open('C:/path/to/desktop/' + filename, 'wb'):

import os
import requests
from bs4 import BeautifulSoup


desktop = os.path.expanduser("~/Desktop")

url = 'https://www.ici.org/research/stats'

response = requests.get(url)

soup = BeautifulSoup(response.text, 'html.parser')
excel_files = soup.select('a[href*=xls]')

for each in excel_files:
    if 'Supplement: Worldwide Public Tables' in each.text:
        link = 'https://www.ici.org' + each['href']

        filename = each['href'].split('/')[-1]

        if os.path.isfile(desktop + '/' + filename):
            print ('*** File already exists: %s ***' %filename)
            continue

        resp = requests.get(link)
        output = open(desktop + '/' + filename, 'wb')
        output.write(resp.content)
        output.close()
        print ('Saved: %s' %filename)

спасибо за помощь, не могли бы вы сказать мне, как я могу загрузить документ, который содержит что-то на плитке? (например, я хочу загрузить только те документы, название которых включает «Дополнение: общедоступные таблицы по всему миру». Также не могли бы вы рассказать мне немного больше о href? Я действительно не понимаю, что должно быть внутри. Извините, если мой вопрос действительно глупый, но я действительно новичок в этом мире :)

Dimitra 05.06.2019 13:49

как бы вы изменили код, который вы включили выше, если вы хотите загрузить документы thrww, которые содержат «Приложение: общедоступные столы по всему миру» в своих именах? Допустим, я хочу загрузить его на свой рабочий стол. Кроме того, каковы <a> теги, которые вы упомянули выше? Я очень ценю вашу помощь :)

Dimitra 05.06.2019 13:54

@Dimitra Я отредактировал / добавил информацию в решение для вас

chitown88 05.06.2019 14:07

Привет Читаун88! Спасибо, что вы есть и помогаете! :) Так теперь он скачивает документы с этими именами? Я попробовал приведенный выше код и попросил сохранить их на рабочем столе, но я их не вижу. Не могли бы вы рассказать мне, как это работает? Нужно ли что-то включать? Большое спасибо :)

Dimitra 05.06.2019 14:28

спасибо большое все работает! :) есть ли возможность включить функцию if, которая будет проверять, сохранен ли уже каждый документ excel в моей папке?

Dimitra 05.06.2019 16:31

Спасибо, chitown88, это замечательная работа :) Думаю, я могу изменить excel_files = суп.выбрать('a[href*=xls]') в pdf, если я хочу загрузить документ в формате pdf с веб-сайта, правильно? Я хочу расширить и загрузить несколько PDF-файлов с разных веб-сайтов :)

Dimitra 05.06.2019 17:21

Привет @ chitown88! Мне интересно, как мы можем изменить приведенный ниже код, чтобы загрузить информационный бюллетень с веб-сайта: am.jpmorgan.com/gb/en/asset-management/gim/liq/produ‌​cts/d/…. Я хочу скачать доступный там информационный бюллетень

Dimitra 19.07.2019 17:10

@Dimitra, ты имеешь в виду таблицу фактов фонда? Не вижу ничего для скачивания (хотя с телефона просматриваю). На самом деле, пришлите мне электронное письмо, мы можем просто перевести это в автономный режим. Джейсон[email protected]

chitown88 20.07.2019 09:50

Спасибо @chitown88 за предложение вашей помощи. Я отправлю вам электронное письмо с подробным объяснением конечной цели. :) еще раз большое спасибо

Dimitra 14.08.2019 10:38

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