我正在尝试使用Python Jupyter中的beautifulsoup从下面的网站上从以下网站取消价格。我想要的元素具有“平均价格”的独特类别。我尝试使用findall函数,但无法将其废弃。有人可以帮我看看有什么问题吗?
网站:https://otc.hbg.com/en-us/trade/buy-usdt/
import requests
URL = 'https://otc.hbg.com/en-us/trade/buy-btc/'
page = requests.get(URL)
from bs4 import BeautifulSoup
soup = BeautifulSoup(page.content, 'html.parser')
containers = soup.find_all("div", {"class": "price average"})
containers
答案 0 :(得分:1)
数据通过JavaScript动态加载。但是您可以使用requests
模块来解析必要的信息:
import json
import requests
url = 'https://otc-api.hbg.com/v1/data/trade-market?coinId=1¤cy=3&tradeType=sell&currPage=1&payMethod=0&country=153&blockType=general&online=1&range=0&amount='
data = requests.get(url).json()
# uncomment this to print all data:
# print(json.dumps(data, indent=4))
for d in data['data']:
print('{:<30}{}'.format(d['userName'], d['price']))
打印:
CRXzone.com 13286.95
CRXzone.com 13352.66
cryptotil 13352.66
coinhub 13365.81
btcsg 13470.94
108057692 13470.94
yjyjyj 13536.66
Silkroad1015 13668.08
btcsg 14193.78
digicryp 16427.98
答案 1 :(得分:0)
您要实现的目标无法在网络抓取程序的帮助下完成,因为您要抓取的元素需要额外的用户交互才能出现在页面上。使用Selenium进行网络自动化,以达到所需的结果。
答案 2 :(得分:0)
您不需要硒。只需查询他们的API:
import requests
url = 'https://otc-api-hk.eiijo.cn/v1/data/trade-market?coinId=2¤cy=4&tradeType=sell&currPage=1&payMethod=0&country=74&blockType=general&online=1&range=0&amount='
resp = requests.get(url).json()
for i in resp['data']:
print(i['price'])