Сканирование и загрузка .csv с веб-сайта ОЭСР - PullRequest
0 голосов
/ 23 января 2020

Извините, что побеспокоил вас моей просьбой. Я начал знакомство с веб-копированием с библиотекой BeautifulSoup. Поскольку мне нужно загрузить некоторые данные с веб-сайтов ОЭСР, я хотел бы попробовать некоторые подходы к веб-очистке. В частности, я хотел скачать файл .csv со следующей страницы: https://goingdigital.oecd.org/en/indicator/50/

Как видите, данные можно легко загрузить, нажав «Загрузить данные». Однако, поскольку мне придется иметь дело с какой-то рекурсивной загрузкой с l oop, я попытался загрузить ее прямо с консоли Python. Поэтому, просматривая страницу, я обнаружил URL-адрес загрузки, который я указал на следующем рисунке: enter image description here

Следовательно, я написал следующий код:

from bs4 import BeautifulSoup
import requests 
from requests import get

url = 'https://goingdigital.oecd.org/en/indicator/50/'
response = get(url)

print(response.text[:500])

html_soup = BeautifulSoup(response.text, 'html.parser')

type(html_soup)

containers = html_soup.find_all('div', {'class': 'css-cqestz e12cimw51'})
print(type(containers))
print(len(containers))

d = []
for a in containers[0].find_all('a', href = True):
    print(a['href'])
    d.append(a['href'])

Объект Containers состоит из трех элементов, поскольку существует три элемента div с указанным классом. Первый (который я выбрал в l oop) должен быть тем, который содержит интересующий меня URL. Тем не менее, я не получаю результата. И наоборот, когда я выбираю третий элемент объекта контейнеры , я получаю следующий вывод:

https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fgoingdigital.oecd.org%2Fen%2Findicator%2F50%2F
https://twitter.com/intent/tweet?text=OECD%20Going%20Digital%20Toolkit&url=https%3A%2F%2Fgoingdigital.oecd.org%2Fen%2Findicator%2F50%2F
https://www.linkedin.com/shareArticle?mini=true&url=https%3A%2F%2Fgoingdigital.oecd.org%2Fen%2Findicator%2F50%2F
mailto:?subject=OECD%20Going%20Digital%20Toolkit%3A%20Percentage%20of%20individuals%20aged%2055-74%20using%20the%20Internet&body=Percentage%20of%20individuals%20aged%2055-74%20using%20the%20Internet%0A%0Ahttps%3A%2F%2Fgoingdigital.oecd.org%2Fen%2Findicator%2F50%2F

Кстати, для этой загрузки, я думаю, это может быть связано со следующим нить . Заранее спасибо!

1 Ответ

0 голосов
/ 23 января 2020

Когда вы извлекаете данные с веб-сайта, вы должны сначала проверить, находится ли искомый контент в источнике страницы. Если его нет в исходном коде страницы, попробуйте поискать в Интернете с селеном.

Когда я исследовал упомянутый вами сайт, я не смог увидеть его в источнике страницы, он показывает, что ссылка, которую вы хотите на этой странице, создается динамически.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...