无法使用 BeautifulSoup 抓取某些表格
Can't scrape some tables with BeautifulSoup
我能够编写一个简单的脚本来从 etfdb.com 中获取表格,但是,有些表格无法正常工作。我认为是因为它们是动态的而不是静态的表。我想知道是否有人可以分享一些关于我如何抓住这些的见解。
无效:
https://etfdb.com/etfs/style/value/
工作正常:
https://etfdb.com/compare/market-cap/
我的原码:
def get_etfs(url, table_num):
webpage = requests.get(url)
soup = BeautifulSoup(webpage.content, "html.parser")
soup_table = soup.find("table")
tables = pd.read_html(str(soup_table))
df = tables[table_num]
print(df)
杰里米!
我在这里测试了您的代码,方法是更改此行:
soup = BeautifulSoup(webpage.text, "lxml")
成功了!通常,当我抓取一些网页时,我们会从页面访问文本。而且,我更喜欢保留标准解析器 - lxml。
我能够编写一个简单的脚本来从 etfdb.com 中获取表格,但是,有些表格无法正常工作。我认为是因为它们是动态的而不是静态的表。我想知道是否有人可以分享一些关于我如何抓住这些的见解。
无效: https://etfdb.com/etfs/style/value/
工作正常: https://etfdb.com/compare/market-cap/
我的原码:
def get_etfs(url, table_num):
webpage = requests.get(url)
soup = BeautifulSoup(webpage.content, "html.parser")
soup_table = soup.find("table")
tables = pd.read_html(str(soup_table))
df = tables[table_num]
print(df)
杰里米!
我在这里测试了您的代码,方法是更改此行:
soup = BeautifulSoup(webpage.text, "lxml")
成功了!通常,当我抓取一些网页时,我们会从页面访问文本。而且,我更喜欢保留标准解析器 - lxml。