【发布时间】:2011-08-20 06:35:36
【问题描述】:
我正在制作一个脚本,用于抓取国际星际争霸 2 游戏 Team Liquid 数据库中的游戏。 (http://www.teamliquid.net/tlpd/sc2-international/games)
但是我遇到了一个问题。我的脚本在所有页面中循环,但是 Team Liquid 站点使用了我认为在表格中的某种 AJAX 来更新它。现在,当我使用 BeautifulSoup 时,我无法获得正确的数据。
所以我循环浏览这些页面:
http://www.teamliquid.net/tlpd/sc2-international/games#tblt-948-1-1-DESC
http://www.teamliquid.net/tlpd/sc2-international/games#tblt-948-2-1-DESC
http://www.teamliquid.net/tlpd/sc2-international/games#tblt-948-3-1-DESC
http://www.teamliquid.net/tlpd/sc2-international/games#tblt-948-4-1-DESC 等等……
当您自己打开这些页面时,您会看到不同的页面,但是我的脚本每次都得到相同的第一页。我认为这是因为在打开其他页面时,您会在一小段时间内看到一些加载内容,将带有游戏的表格更新到正确的页面。所以我猜 beatifulsoup 速度很快,需要等待表的加载和更新完成。
所以我的问题是:我怎样才能确保它接受更新的表格?
我现在使用此代码获取表格的内容,然后将内容放入 .csv:
html = urlopen(url).read().lower()
bs = BeautifulSoup(html)
table = bs.find(lambda tag: tag.name=='table' and tag.has_key('id')
and tag['id']=="tblt_table")
rows = table.findAll(lambda tag: tag.name=='tr')
【问题讨论】:
标签: python beautifulsoup