Python 3 Urllib发布问题

时间:2015-10-26 00:44:37

标签: python web geolocation ip urllib

我希望有人能帮助我发布urllib帖子。我对此计划的目标是发布IP地址并获取其相对位置。我知道有很多API等等,但我的学校并不热衷于以任何方式修改任何计算机(这是针对comp sci类)。所以到目前为止,下面的代码得到了我的位置,因为我的计算机IP已经被网站感知到了(我猜在一个标题?),但我想做的只是输入一个IP并返回地点。 ipStr只是IP字符串(在这种情况下,它是纽约时代华纳有线电视公司的IP)。我尝试设置值并提交数据,但无论我将值设置为什么,它只返回我自己的计算机位置。有什么想法吗?

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

1 个答案:

答案 0 :(得分:0)

您只需将参数名称从value更改为query,例如:

values = {'query': ipStr}

如果您查看页面上的输入字段名称(https://www.iplocation.net/),您会看到该字段的名称为query