gpt4 book ai didi

html - 将给定 URL 中的 HTML 表格抓取到 CSV 中

转载 作者:搜寻专家 更新时间:2023-10-31 02:25:20 57 4
gpt4 key购买 nike

我正在寻找一个可以像这样在命令行上运行的工具:

tablescrape 'http://someURL.foo.com' [n]

如果未指定n 并且页面上有多个HTML 表格,则应将它们(标题行、总行数)汇总在一个编号列表中。如果指定了 n 或者如果只有一个表,它应该解析该表并将其作为 CSV 或 TSV 输出到标准输出。

潜在的附加功能:

  • 说真的,您可以在一个表中解析一个表,但就我的目的而言——从维基百科页面等获取数据——这太过分了。
  • 将任何 unicode 归类的选项。
  • 应用任意正则表达式替换以修复已解析表格中的怪异现象的选项。

你会用什么来拼凑这样的东西?Perl 模块 HTML::TableExtract可能是一个很好的起点,甚至可以处理嵌套表的情况。这也可能是一个很短的 Python 脚本,带有 BeautifulSoup .会 YQL是一个好的起点?或者,理想情况下,您是否写过类似的东西并有指向它的指针?(我肯定不是第一个需要这个的人。)

相关问题:

最佳答案

这是我的第一次尝试:

http://yootles.com/outbox/tablescrape.py

它需要做更多的工作,比如更好的 asciifying,但它是可用的。例如,如果您将其指向此 list of Olympic records :

./tablescrape http://en.wikipedia.org/wiki/List_of_Olympic_records_in_athletics

它告诉你有 8 个表可用,很明显,第 2 和第 3 个(男子和女子记录)是你想要的:

1: [  1 cols,   1 rows] Contents 1 Men's rec
2: [ 7 cols, 25 rows] Event | Record | Name | Nation | Games | Date | Ref
3: [ 7 cols, 24 rows] Event | Record | Name | Nation | Games | Date | Ref
[...]

然后如果你再次运行它,请求第二个表,

./tablescrape http://en.wikipedia.org/wiki/List_of_Olympic_records_in_athletics 2

你得到一个合理的明文数据表:

100 metres | 9.69 | Usain Bolt | Jamaica (JAM) | 2008 Beijing | August 16, 2008 | [ 8 ]
200 metres | 19.30 | Usain Bolt | Jamaica (JAM) | 2008 Beijing | August 20, 2008 | [ 8 ]
400 metres | 43.49 | Michael Johnson | United States (USA) | 1996 Atlanta | July 29, 1996 | [ 9 ]
800 metres | 1:42.58 | Vebjørn Rodal | Norway (NOR) | 1996 Atlanta | July 31, 1996 | [ 10 ]
1,500 metres | 3:32.07 | Noah Ngeny | Kenya (KEN) | 2000 Sydney | September 29, 2000 | [ 11 ]
5,000 metres | 12:57.82 | Kenenisa Bekele | Ethiopia (ETH) | 2008 Beijing | August 23, 2008 | [ 12 ]
10,000 metres | 27:01.17 | Kenenisa Bekele | Ethiopia (ETH) | 2008 Beijing | August 17, 2008 | [ 13 ]
Marathon | 2:06:32 | Samuel Wanjiru | Kenya (KEN) | 2008 Beijing | August 24, 2008 | [ 14 ]
[...]

关于html - 将给定 URL 中的 HTML 表格抓取到 CSV 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2611418/

57 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com