【发布时间】:2020-09-16 11:16:36
【问题描述】:
我是使用 Pandas 的初学者。但我想在这里获取 Nvidia 网站上的 G-Sync 游戏监视器表:https://www.nvidia.com/en-us/geforce/products/g-sync-monitors/specs/ 并将其转换为 Pandas for Python 中的数据帧。
我尝试做的第一件事是
import pandas as pd
df = pd.read_html('https://www.nvidia.com/en-us/geforce/products/g-sync-monitors/specs/')
但这似乎不起作用。我收到 ValueError: No tables found。
然后我试着做
import requests
import lxml.html as lh
page = requests.get('https://www.nvidia.com/en-us/geforce/products/g-sync-monitors/specs/')
但不知何故我得到 ContentDecodingError: ('Received response with content-encoding: gzip, but failed to decode it.', error('Error -3 while decompressing data: wrong header check')).
如果有人能解释为什么前两种方法不起作用以及如何将表格实际放入数据框中,那将非常有帮助。谢谢!
【问题讨论】:
-
看起来所有数据都在 XHR 中可用:nvidia.com/content/dam/en-zz/Solutions/geforce/… 你可以
requests.get()然后json.loads()内容用作 python 字典 -
查看此评论“该表在页面 html 中不存在,它在页面的其余部分之后异步加载。Pandas 不会等待页面加载 java 内容。您可能需要一些像 Selenium 这样的自动化来在尝试解析页面之前加载页面“来自这篇文章:stackoverflow.com/questions/53398785/…
标签: python pandas web-scraping