Идентификация данных DJIA с использованием Beautiful Soup - PullRequest
2 голосов
/ 02 мая 2019

Я довольно новичок в кодировании и пытаюсь написать скрипт, который будет извлекать рыночные данные через определенные промежутки времени во время работы, затем сравнивать дельту между каждым пулом и уведомлять пользователя об изменениях - например, в поисках простых изменений. > .1% в любом интервале.

Мой первоначальный подход - запустить скрипт Beautiful Soup для получения опубликованных рыночных данных, используя либо Yahoo Finance, либо Barron's, так как оба, похоже, имеют данные, доступные в HTML-коде:

https://finance.yahoo.com/calendar

http://www.barrons.com/mdc/public/page/9_3000.html?mod=bol_mdc_topnav_9_3000

Насколько я понял, и мне не повезло, функция поиска, похоже, ничего не возвращает с сайта - ищет какие-либо толчки, которые могли бы помочь мне встать на правильный путь с этим

from bs4 import BeautifulSoup

from urllib.request import urlopen

import requests


import pandas as pd

url = 'https://finance.yahoo.com/calendar'

page = urlopen(url)

soup = BeautifulSoup(page, 'html.parser')


soup.find("span")

Я ожидаю, что это вернет первый тег span, чтобы позже я мог отточить данные DJIA: "

span class="Trsdu(0.3s) Fz(s) Mt(4px) Mb(0px) Fw(b) D(ib)" data-reactid="31">26,430.14</span

но скрипт запускается и ничего не возвращает

1 Ответ

1 голос
/ 02 мая 2019

Вы можете использовать тот же URL-адрес, который внизу вашего списка URL-адресов использует для получения цитаты

import requests
from bs4 import BeautifulSoup as bs

r = requests.get('https://quotes.wsj.com/index/DJIA?mod=mdc_uss_dtabnk')
soup = bs(r.content, 'lxml')
djia = soup.select_one('#quote_val').text
print(djia)

Это ясно как источник, когда вы проверяете сетевой трафик исходного нижнего URL-адреса, который вы перечисляете, а затем сосредотачиваетесь на этом URL-адресе

http://www.barrons.com/mdc/public/js/9_3001_Refresh.js?

, у которого есть js для обновления этого значения. Там вы можете увидеть указанный источник URL для цитаты.

Ответ, который содержит:

enter image description here

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