我无法从特定网页以编程方式获取数据。
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()
谢谢!
答案 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方便。