Как получить данные из опубликованных c листов Google с помощью python? - PullRequest
1 голос
/ 11 апреля 2020

Я пытаюсь получить данные COVID-19, представленные в разных листах следующего листа Google. Поскольку g-лист открыт для использования в общественных местах c, URL-адрес возвращает только первый рабочий лист. Я хочу очистить все рабочие листы. Может помочь любая справка. Вот ссылка на лист Google:

https://docs.google.com/spreadsheets/d/e/2PACX-1vSc_2y5N0I67wDU38DjDh35IZSIS30rQf7_NYZhtYYGU1jJYT6_kDx4YpF-qw0LSlGsBYP8pqM_a1Pd/pubhtml

1 Ответ

4 голосов
/ 11 апреля 2020

Вы можете сделать это с помощью запросов. Все таблицы находятся в источнике одного HTML документа. Просто перебирайте таблицы и пишите в CSV.

from bs4 import BeautifulSoup
import csv
import requests

html = requests.get('https://docs.google.com/spreadsheets/d/e/2PACX-1vSc_2y5N0I67wDU38DjDh35IZSIS30rQf7_NYZhtYYGU1jJYT6_kDx4YpF-qw0LSlGsBYP8pqM_a1Pd/pubhtml').text
soup = BeautifulSoup(html, "lxml")
tables = soup.find_all("table")
index = 0
for table in tables:
    with open(str(index) + ".csv", "w") as f:
        wr = csv.writer(f, quoting=csv.QUOTE_NONNUMERIC)
        wr.writerows([[td.text for td in row.find_all("td")] for row in table.find_all("tr")])
    index = index + 1
...