0
点赞
收藏
分享

微信扫一扫

获得本机公网IP(python)

罗蓁蓁 2022-04-05 阅读 48
  • 使用 www.ip138.com 作为解析对象
  • 自动解析ip138.中框架的地址
  • pyquery的用例
# pip install urllib
# pip install pyquery

import urllib
import urllib.parse
import urllib.request
from pyquery import PyQuery as pq


def get_ip():
    
    # 这里用iphone7 的头
    # 不增头信息,访问ip138.com失败

    # ip138.com中使用iframe,这里先获得iframe中的src
    # 每年iframe中的地址会变,比如 2019.ip138.com 2022.ip138.com
    headers = ("User-Agent",
               "Mozilla/5.0 (Linux;U;Android 2.3;en-us;Nexus One Build/FRF91)AppleWebKit/999+(KHTML, like Gecko)Version/4.0 Mobile Safari/999.9")
    opener = urllib.request.build_opener()
    opener.addheaders = [headers]
    data = opener.open("http://ip138.com")
    doc = pq(data.read())
    url = "http://" + doc('iframe').eq(0).attr('src').replace('/','')
    # print(url)
    opener.close()

    #获取ip地址
    opener = urllib.request.build_opener()
    opener.addheaders = [headers]
    data = opener.open(url)
    doc = pq(data.read().decode('utf8'))

    # 取得素有的 <a> 元素
    lista = doc('body p a')

    # 取得第一个<a> 元素
    firsta = lista.eq(0).text()
    #print(firsta)
    return firsta
举报

相关推荐

0 条评论