查询后无法获取整个网页

时间:2011-08-07 11:59:50

标签: javascript python screen-scraping urllib2 urllib

我正在尝试抓取此页面上的历史NAVPS表格:
http://www.philequity.net/pefi_historicalnavps.php

这里的所有代码都是我最小工作脚本的内容。所以它始于:

import urllib
import urllib2
from BeautifulSoup import BeautifulSoup

opener = urllib2.build_opener()
urllib2.install_opener(opener)

使用Chrome的Inspect Element学习网页后,我发现发送的表单数据如下:

form_data = {}
form_data['mutualFund'] = '1'
form_data['year'] = '1995'
form_data['dmonth'] = 'Month'
form_data['dday'] = 'Day'
form_data['dyear'] = 'Year'

所以我继续建立请求:

url = "http://www.philequity.net/pefi_historicalnavps.php"
params = urllib.urlencode(form_data)
request = urllib2.Request(url, params)

我希望这相当于在填写表格后点击“获取NAVPS”:

page = urllib2.urlopen(request)

然后我用BeautifulSoup

阅读
soup = BeautifulSoup(page.read())
print soup.prettify()

但是唉!我只得到网页,好像我没有点击“获取NAVPS”:(我错过了什么?服务器是否在单独的流中发送表?我怎么做到的?

1 个答案:

答案 0 :(得分:1)

当我在firebug中查看POST请求时,我看到另外一个你没有传递的参数:“type”是“Year”。我不知道这是否能为您提供数据,还有其他许多原因可能无法为您提供数据。