Python читать полную таблицу со страницы HTML - PullRequest
0 голосов
/ 21 сентября 2019

Я пытаюсь прочитать некоторые исторические (за 5 лет) данные об акциях с веб-страницы финансов Yahoo с помощью функции панд read_html.Он выполняет работу частично, потому что читает только первые 100 строк (до 3 мая 2019 г.) таблицы, а не всю таблицу, как мне хотелось бы.

Это мой код:

import pandas as pd

url = 'https://finance.yahoo.com/quote/Q.MX/history?period1=1411189200&period2=1568955600&interval=1d&filter=history&frequency=1d'

# Reads only the first 100 rows, not the entire table
data = pd.read_html(url)[0]
print(data.shape)
# (101,7)

Еще один подход, который я пробовал, заключался в разборе страницы и извлечении данных из проанализированной веб-страницы, однако это дает тот же результат, поскольку он также анализирует только первую100 строк таблицы.

Вот код:

import requests
from bs4 import BeautifulSoup

url = 'https://finance.yahoo.com/quote/Q.MX/history?period1=1411189200&period2=1568955600&interval=1d&filter=history&frequency=1d'
page = BeautifulSoup(requests.get(url).content)

# Getting the table rows 
table_rows = page.findAll('tr', {'class':'BdT Bdc($seperatorColor) Ta(end) Fz(s) Whs(nw)'})
print(len(table_rows))
# 100

Моя последняя попытка была получить данные из URL загрузки CSV, однако это привело к нулевому ответу.Код:

import requests

url = 'https://query1.finance.yahoo.com/v7/finance/download/Q.MX?period1=1411189200&period2=1568955600&interval=1d&events=history&crumb=jcmd/2KRw4G'

content = requests.get(url).content
print(content)
# {\n    "finance": {\n        "error": {\n            "code": "Unauthorized",\n            "description": "Invalid cookie"\n        }\n    }\n}\n

Итак, у кого-нибудь есть идеи, как получить полные данные об этой акции со страницы Yahoo?

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