【发布时间】:2019-07-02 20:11:26
【问题描述】:
试图从网页表中提取数据。页面上显示的数据是四舍五入的小数点后 3 位,但实际单元格值是小数点后 4 位。我需要完整的、未四舍五入的数字。
我的循环:
for i in range(0,20):
soup = BeautifulSoup(html_source,'lxml')
table = soup.find_all('table')[i]
df = pd.read_html(str(table))
print(region,i)
print( tabulate(df[0], headers='keys', tablefmt='psql') )
网页元素:
<span class="price-data " data-amount="{"regional":
{"asia-pacific-east":0.022,"japan-
east":0.0176,"japan-west":0.0206,"us-
west":0.0164,"us-west-2":0.0144,"us-west-
central":0.018,"west-india":0.0193}}" data-decimals="3"
data-decimals-force="3" data-month-format="{0}/month" data-hour-format="
{0}/hour" data-region-unavailable="N/A" data-has-valid-
price="true">$0.018/hour</span>
我的代码显示0.018/hour,我需要它显示0.0176/hour。
注意:这是针对 japan-east(样本数据也有 japan-west)。
【问题讨论】:
-
原因是因为您正在提取 html 中显示的文本/内容。您必须查看并查看是否可以提取原始源并对其进行解析。
-
region是什么?它没有在您的代码中定义。我看不到您的代码如何打印任何类似 0.018/小时的内容 .. 您pd.read_html(str(table))一个表属性,但您没有显示表数据 - 只有一个跨度 ... -
这个网址是什么?
标签: python selenium web-scraping beautifulsoup