在所需表格需要用户输入的地方读取 html

Posted

技术标签:

【中文标题】在所需表格需要用户输入的地方读取 html【英文标题】:Read html where required table needs user's input 【发布时间】:2020-07-24 14:03:37 【问题描述】:

我想从“https://coinmarketcap.com/exchanges/bitfinex/”读取表格,但是我需要将“pair”设置为“USD”。默认情况下,它设置为“全部”。将 'USD' 更改为 'All' 不会更改 url 或任何内容,因此当我将链接提供给 pandas_datareader 时,它只会找到默认表。

有什么方法可以读取所需的表格吗?

【问题讨论】:

当您选择 USD 时,页面使用 javascript 过滤表 - 因此您无法通过更改 URL 来获得此信息。似乎它已经在内存中拥有所有数据,也许您可​​以在 html 中的某个地方找到它 - 但它可能需要更多的东西而不是 pandas_datareaderrequests+beautifulsoup(或 lxml 看来你只能从页面中获取所有数据,然后在 Python 中过滤它们以获得只需要的对。 【参考方案1】:

似乎此页面包含 HTML 格式的所有数据,当您选择 USD 时,它使用 JavaScript 过滤表中的数据。所以它不使用其他URL 来获取数据,也不使用AJAX 从其他URL 加载它们 - 所以你不能通过更改URL 来获取它

您只能获取所有数据和以后的过滤行

import pandas as pd

all_dfs = pd.read_html('https://coinmarketcap.com/exchanges/bitfinex/')

df = all_dfs[2]

df[ df['Pair'].str.endswith('USD') ]

【讨论】:

以上是关于在所需表格需要用户输入的地方读取 html的主要内容,如果未能解决你的问题,请参考以下文章

用户输入的服务器端验证

在模拟期间通过 GUI 读取用户的输入 [关闭]

通过用户表单替换自动填充的文本

通过用户表单替换自动填充的文本

处理用户输入

jQuery Validation 插件:提示覆盖