| 
 | 
 
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册  
 
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)
 
  复制代码 
 
 
 |   
 
 
 
 |