无法使用 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。