Я пытаюсь извлечь 24-часовые тома со страницы это. У них есть API, за исключением того, что кажется, что объем не возвращается в данных json (по крайней мере, я не могу заставить его работать). Я попробовал простой парсинг с использованием регулярных выражений и теперь использую метод lxml
xpath.
Что я могу сделать, чтобы получить 24-часовой объем с этой страницы?? Он защищен?
Это мой последний код:
from lxml import html
import requests
swyftx_page = requests.get('https://swyftx.com/au/buy/bitcoin/')
swyftx_tree = html.fromstring(swyftx_page.content)
swyftx_prices_btc = swyftx_tree.xpath('/html/body/section[1]/div/div[2]/div/div[2]/div[2]/div[3]/h3/text()')
print(swyftx_prices_btc)
Когда я запускаю это, я получаю:
['$0.00']
Что явно не правильно. Жду ответа типа:
['34,560,324,200']
Отключите Javascript для этой страницы в вашем браузере. Как вы можете видеть, 24-часовой объем изначально установлен на 0,00 долларов США. Это означает, что его необходимо обновить позже с помощью Javascript. Вы можете попытаться найти, какой доступ к сети сделан, и вместо этого получить доступ к нему.
Данные, которые вы видите на странице, загружаются с внешнего URL через JavaScript. Чтобы смоделировать это с помощью модуля requests
, вы можете использовать этот пример:
import json
import requests
url = "https://apic.swyftx.io/markets/aud/"
data = requests.get(url).json()
# uncomment to print all data:
# print(json.dumps(data, indent=4))
for d in data:
if d["name"] == "Bitcoin":
print("Volume:", d["volume24H"])
break
Отпечатки:
Volume: 34974203469
Эта страница использует javascript? Если вы получаете страницу с
requests
, javascript не обрабатывается.