在所需表格需要用户输入的地方读取 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_datareader
但 requests
+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的主要内容,如果未能解决你的问题,请参考以下文章