Python 3 个 Urllib 发布问题
Python 3 Urllib Posting Issues
我希望有人可以帮助我使用 urllib posting。我这个程序的目标是 post 一个 IP 地址并获得它的相对位置。我知道那里有很多 API 等,但我的学校不太热衷于以任何方式修改他们的任何计算机(这是针对 comp sci class)。所以现在下面的代码让我知道我的位置,因为我的电脑 IP 已经被网站感知到(我猜是 header?),但我想做的只是输入一个 IP并有一个返回的位置。 ipStr
只是 IP 字符串(在本例中是时代华纳有线在纽约的 IP)。我尝试设置值并提交数据,但无论我将值设置为什么,它都只是 returns 我自己的计算机位置。有什么想法吗?
ipStr = "72.229.28.185"
url = "https://www.iplocation.net/"
values = {'value': ipStr}
headers = {}
headers ['User-Agent'] = 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.1'
data = urllib.parse.urlencode(values)
data = data.encode('utf-8')
req = urllib.request.Request(url,data=data, headers = headers)
resp = urllib.request.urlopen(req)
page = str(resp.read())
npattern = "Google Map for"
nfound = re.search(npattern,page)
ns = nfound.start()
ne = nfound.end()
location = ""
while page[ne:ne +1] != "(":
location += page[ne:ne+1]
ne += 1
只需要将参数名称由value
改为query
即可,例如:
values = {'query': ipStr}
如果您查看页面上输入字段的名称 (https://www.iplocation.net/),您会看到该字段的名称是 query
。
我希望有人可以帮助我使用 urllib posting。我这个程序的目标是 post 一个 IP 地址并获得它的相对位置。我知道那里有很多 API 等,但我的学校不太热衷于以任何方式修改他们的任何计算机(这是针对 comp sci class)。所以现在下面的代码让我知道我的位置,因为我的电脑 IP 已经被网站感知到(我猜是 header?),但我想做的只是输入一个 IP并有一个返回的位置。 ipStr
只是 IP 字符串(在本例中是时代华纳有线在纽约的 IP)。我尝试设置值并提交数据,但无论我将值设置为什么,它都只是 returns 我自己的计算机位置。有什么想法吗?
ipStr = "72.229.28.185"
url = "https://www.iplocation.net/"
values = {'value': ipStr}
headers = {}
headers ['User-Agent'] = 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.1'
data = urllib.parse.urlencode(values)
data = data.encode('utf-8')
req = urllib.request.Request(url,data=data, headers = headers)
resp = urllib.request.urlopen(req)
page = str(resp.read())
npattern = "Google Map for"
nfound = re.search(npattern,page)
ns = nfound.start()
ne = nfound.end()
location = ""
while page[ne:ne +1] != "(":
location += page[ne:ne+1]
ne += 1
只需要将参数名称由value
改为query
即可,例如:
values = {'query': ipStr}
如果您查看页面上输入字段的名称 (https://www.iplocation.net/),您会看到该字段的名称是 query
。