|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
使用https://www.ip138.com/网站查询自己的IP,网站编码格式是GBK
import urllib.request
import re
url1 = "https://www.ip138.com/"
def ipdet(url) :
req = urllib.request.Request(url)
req.add_header("User-Agent","Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3756.400 QQBrowser/10.5.4039.400")
response = urllib.request.urlopen(req)
html = response.read().decode("GBK")
print(html)
r= r'(?:(?:[0,1]?\d?\d|2[0-4]\d|25[0-5])\.){3}(?:[0,1]?\d?\d|2[0-4]\d|25[0-5])'
ip = re.findall(r,html)
print(ip)
ipdet(url1)
写的有点混乱,但是这样并没有得到IP地址,看了下html里面的元素也没有跟网站检查时的<a href="https://www.ip138.com/iplookup.asp?ip=110.184.65.14&action=2" target="_top">110.184.65.14</a>这个标签
不知道怎么办求大佬看看
本帖最后由 suchocolate 于 2020-6-3 08:43 编辑
IP138的查询实际是走的是2020.ip138.com,你代码这样改:
- import urllib.request
- import re
- url = "http://2020.ip138.com"
- req = urllib.request.Request(url)
- req.add_header("User-Agent","Firefox")
- response = urllib.request.urlopen(req)
- html = response.read().decode("utf-8")
- ip = re.findall(r'您的IP地址是:(.*)<',html)
- print(ip)
复制代码
下面是requests版:
- import requests
- import re
- url = 'http://2020.ip138.com'
- headers = {'user-agent': 'firefox'}
- r = requests.get(url, headers=headers)
- ip = re.findall(r'您的IP地址是:(.*)<',r.text)
- print(ip)
复制代码
|
|