Web Scrapping just return None



我正在尝试用mir4draco的价格制作一个弹出程序。但价格返回None:

import requests                                                                                      
from bs4 import BeautifulSoup                                                                        
                           
urll = 'https://www.xdraco.com/coin/price/'                                                          
                           
headers = {                                                                                          
'User-Agent': "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) "
"Chrome/86.0.4240.198 Safari/537.36"}                                              
                           
site = requests.get(urll, headers=headers)                                                           
soup = BeautifulSoup(site.content, 'html5lib')                                                          
                           
price = soup.find('span', class_="amount")                                                           
                           
print(price)                                                                                         

您将无法解析像@jabbson提到的那样使用JS动态加载的网站。

这可能是获取所需数据的一种方法。

如果你检查页面发出的网络请求,你会发现它会调用一些不同的API。我找到了一个可能有你要找的信息的。您可以向这个API发出POST请求,如下所示。。。

import requests
import json
headers = {'accept':'application/json, text/plain, */*','user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36'}
html = requests.post('https://api.mir4global.com/wallet/prices/hydra/daily', headers=headers)
output = json.loads(html.text)
# 'output' is a dictionary. If we index the last element, we can get the latest data entry
print(output['Data'][-1])

输出:

{'CreatedDT': '2022-08-04 21:55:00', 'HydraPrice': '2.1301000000000001', 'HydraAmount': '13434', 'HydraPricePrev': '2.3336000000000001', 'HydraAmountPrev': '5972', 'HydraUSDWemixRate': '2.9401340627166839', 'HydraUSDKLAYRate': '0.29840511595654395', 'USDHydraRate': '6.2627795669928084'}

最新更新