【问题标题】:Cannot get entire web page after query查询后无法获取整个网页
【发布时间】:2011-08-07 11:59:49
【问题描述】:

我正在尝试抓取此页面上的历史 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 = {}
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”:( 我错过了什么吗?服务器是否在单独的流中发送表?我如何获得它?

【问题讨论】:

    标签: javascript python screen-scraping urllib2 urllib


    【解决方案1】:

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

    【讨论】:

    • 就是这样。我确实错过了。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2019-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-14
    • 2011-05-16
    • 1970-01-01
    • 2019-04-22
    相关资源
    最近更新 更多