我想从MCX印度网站上搜集现货价格数据。 检查元素时可见的HTML脚本如下所示:
<div class="contents spotmarketprice">
<div id="cont-1" style="display: block;">
<table class="mcx-table mrB20" width="100%" cellspacing="8" id="tblSMP">
<thead>
<tr>
<th class="symbol-head">
Commodity
</th>
<th>
Unit
</th>
<th class="left1">
Location
</th>
<th class="right1">
Spot Price (Rs.)
</th>
<th>
Up/Down
</th>
</tr>
</thead>
<tbody>
<tr>
<td class="symbol" style="width:30%;">ALMOND</td>
<td style="width:17%;">1 KGS</td>
<td align="left" style="width:17%;">DELHI</td>
<td align="right" style="width:17%;">558.00</td>
<td align="right" class="padR20" style="width:19%;">=</td>
</tr>
我编写的代码是:
#import the required libraries
from bs4 import BeautifulSoup
import requests
#Getting data from website
source= requests.get('http://www.mcxindia.com/market-data/spot-market-price').text
#Getting the html code of the website
soup = BeautifulSoup(source, 'lxml')
#Navigating to the blocks where required content is present
division_1= soup.find('div', class_="contents spotmarketprice").div.table
#Displaying the results
print(division_1.tbody)
输出:
<tbody>
</tbody>
在网站上,我想得到的内容可以在。。。但是,这里没有显示任何内容。请提出一个解决方案
表中的数据似乎是通过JavaScript上传的
这就是为什么,如果您试图使用
< >擦除JS驱动的数据,考虑使用^ {CD4>}和chromedriver。本例中的解决方案如下所示:requests
库获取此信息,返回时不会收到表的数据requests
根本不支持JS。因此,这里的问题不在BeautifulSoup
上述脚本的输出为:
UPD:我必须说明上面的代码回答了查看此特定表的问题。然而,有时网站将数据存储在“application/json”或类似的标记中,这些标记可以通过“requests”库访问(因为它们不需要JS)
正如αԋɱҽԃ αмєяιcαη发现的,当前网站包含这样的标签。请核对他的答案。在这种情况下,使用
requests
确实比使用selenium
要好。输出:
如果您想要更改符号:
以下是它的版本:
输出:
相关问题 更多 >
编程相关推荐