通过POST请求检索数据

时间:2012-12-27 22:52:51

标签: post python-3.x urllib

我无法从特定网页以编程方式获取数据。

http://www.uschess.org/msa/thin2.php允许用户按姓名和州搜索美国国际象棋评级。

提交POST请求,我可以达到相当于http://www.uschess.org/msa/thin2.php?memln=nakamura&memfn=hikaru但仍然需要一个点击“搜索”按钮来获取有用的数据。到达结果页面的最佳方式是什么?

import urllib.request
import urllib.parse
data = {'memfn':'hikaru', 'memln':'nakamura'}
url = r'http://www.uschess.org/msa/thin2.php'
s = urllib.parse.urlopen(url, bytes(urllib.parse.urlencode(data),'UTF-8'))
s.read()

谢谢!

1 个答案:

答案 0 :(得分:2)

这个有效:

#!/usr/bin/env python
import urllib

data = {'memfn':'hikaru', 'memln':'nakamura', 'mode':'Search'}
url = r'http://www.uschess.org/msa/thin2.php'
s = urllib.urlopen(url, bytes(urllib.urlencode(data)))
print s.read()

基本上,您需要提交值为mode的隐藏参数Search来模仿按下按钮。

注意:我为python 2.x重写了它,抱歉,但我没有python3方便。