Я новичок в парсинге веб-страниц с использованием запросов и BeauryfulSoup. Я пытаюсь получить текущие цены на акции от Yahoo Finance с помощью запросов и BeautifulSoup. Я знаю, что могу использовать один из доступных API, чтобы узнать цены, но я пытаюсь узнать, как это сделать без API. Я использую браузер Chrome на машине Win 10.
Вот что я пытался получить в реальном времени цены акций на Yahoo Finance: Начните с:
запросы на импорт импорт bs4 из bs4 import BeautifulSoup
Затем создайте URL-адрес, аналогичный тому, который вы увидите на yahoo.finance, чтобы получить цены на несколько акций. Я использовал следующий код для создания URL-адреса, чтобы очистить текущие цены из базы списка акций
base_url="https://finance.yahoo.com/quotes/"
sl=['REGN','BIIB','AMD','TSLA','QQQ']
for i in sl:
base_url=base_url+i+','
base_url
base_url=base_url[:-1]
base_url=base_url+'/view/v1'
base_url
Я получаю вывод:
'https://finance.yahoo.com/quotes/REGN,BIIB,AMD,TSLA,QQQ/view/v1'
, чтобы подтвердить, что URL-адрес правильный.
Затем я использую запросы, чтобы получить html:
r = requests.get(base_url)
rh = r.content
rs = BeautifulSoup(rh, "lxml")
print(rs.prettify())
Вывод очень длинный, поэтому я не включил его здесь. Но в нем нет цен ни одной из акций, хотя их тикеры есть в выводе запросов. Когда вы проверяете HTML с помощью опции проверки на Chrome, цены явно там.
Я подозреваю, что «запросы» по какой-то причине не содержат данных о ценах в HTML он собирается, потому что yahoo использует "JS" для получения цен в реальном времени, и эта часть не включена в HTML. Однако даже в нерабочие часы я не мог получить данные о ценах в HTML. Не могли бы вы объяснить лучший способ очистки финансов Yahoo, чтобы вы могли получить всю информацию, которую вы получаете, когда «просматриваете» вывод веб-сайта Yahoo Finance в браузере chrome?
У меня есть еще несколько вопросы: - В общем, можете ли вы дать рекомендации по очистке веб-сайтов, таких как yahoo finance, чтобы получить полную отдачу?
1046 *, можете ли вы использовать такую функцию, как «найти» в go глубоко в HTML, чтобы добраться до «диапазона», содержащего данные, которые вы ищете, не проходя через несколько «div» для достижения «диапазона»?
Существуют ли команды, упрощающие поиск HTML, помимо «найти» и «найти все»?
Можете ли вы дать ссылку на хороший учебник или книга, охватывающая ряд уловок для поиска HTML? Спасибо за помощь