我试图从一个看似ajax的webapage中获取数据。数据每秒自动刷新。在
http://daytonama.clubspeedtiming.com/sp_center/livescore.aspx
我似乎不知道我是否选择了正确的下拉列表,或者页面是否正在更改为需要刮取的数据。在
谢谢
!/usr/bin/env python
import mechanize
from bs4 import BeautifulSoup
import re
import urllib2
#import html2text
import time
# Set credentials
venue = "sp" # Manchester (ma), Milton Keynes (mk), Sandown Park (sp), Tamworth (ta)
track = "3" # Manchester (3), Milton Keynes (1)
# Open new browser
br = mechanize.Browser()
# Target live timing page
resp = br.open("http://daytona"+ venue +".clubspeedtiming.com/sp_center/livescore.aspx")
html = resp.read()
# Grab live data table
soup = BeautifulSoup(html, "html5lib")
# Select track layout
select_node = soup.findAll('select', attrs={'name': 'ddlTrack'})
if select_node:
for option in select_node[0].findAll('option'):
print ''
#print option.text
br.select_form( name = 'form1' )
br.form['ddlTrack'] = [track]
grid = soup.find("div", { "id" : "grid" })
print ''.join(map(str, grid.contents))
通常ajax调用是由目标网页上运行JS的异步请求触发的
据我所知机械化.Browser不是真正的浏览器,它不能执行和理解javascript,不能发送异步请求。在
在我看来,这就是你试图输入到BS4的页面没有真正加载的原因,这就是为什么你不能选择。在
我能想到两种选择:
相关问题 更多 >
编程相关推荐