我是一个关于抓取的新手,但我已经开始使用Python 3.4进行一个小项目了 由于某种原因,以下代码无法正确提交。在我的第一次尝试中,我基本上只想在网络表单上点击“searh”(“Sök”)。
我使用的代码是:
import urllib.parse
import urllib.request
url = 'http://www.kkv.se/Diariet/default.asp?nav=2'
values = { 'action' : 'S%F6k',
'dossnr_from' : '0',
'dossnr_tom' : '0',
'hits_page' : '10',
'hits_search' : '50',
'sort' : 'Regdatum',
'sortorder' : 'Fallande'}
data = urllib.parse.urlencode(values)
print(values)
data = data.encode('utf-8')
req = urllib.request.Request(url, data)
response = urllib.request.urlopen(req)
the_page = response.read()
print(the_page)
我也尝试过提交帖子结果(我在手动发布后在Firebug中找到):
url_values = 'diarienr=&diaryyear=&text_arendemening=&text_avsandare=®datum_from=&
regdatum_tom=&beslutsdatum_from=&beslutsdatum_tom=&dossnr_from=0&dossnr_tom=0&
hits_page=10&sort=Regdatum&hits_search=50&sortorder=Fallande&action=S%F6k'
url = 'http://www.kkv.se/Diariet/default.asp?nav=2'
full_url = url + '?' + url_values
data = urllib.request.urlopen(full_url)
print(data.read())
但是这两个代码只吐出了起始网址的来源。 任何人都可以帮我指出正确的方向吗?
非常感谢你的帮助。 Equilib
答案 0 :(得分:0)
您应该从您发布到的网址中删除?nav=2
。
答案 1 :(得分:0)
请注意,在您的第二次尝试中,该网址已包含'?'并且查询字符串以nav = 2:
开头url = 'http://www.kkv.se/Diariet/default.asp?nav=2'
然后,您构建一个完整的网址,并包含一个冗余的'?'在基本URL之后。那'?'应该是'&#;;',因为到基本URL结束时,查询字符串已经开始。