python使用www.ip138.com作为解析对象 获取公网ip及ip所属地区
学习使用pyquery的用例:
# 此还需要优化(网站存在反爬虫机制,有时会失效)
import urllib
import urllib.parse
import urllib.request
from pyquery import PyQuery as pqdef get_myip():# ip138.com中使用iframe,这里先获得iframe中的src# 每年iframe中的地址会变,比如 2019.ip138.com 2022.ip138.com# 不增头信息,访问ip138.com失败# 这里用iphone7 的头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")# headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0'}opener = urllib.request.build_opener()opener.addheaders = [headers]data = opener.open("https://ip138.com")# data = opener.open("http://ip138.com")doc = pq(data.read())# 获得 iframe 标签的 src 属性的值# 获得出来大概是这样 "//2022.ip138.com/"# 再去掉两头多余的 "/" 就获得到实际的显示地址了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> 元素list1 = doc('body p a')return list1;if __name__ == '__main__':lists = get_myip();# 取得第一个<a> 元素my_ip = lists.eq(0).text();ip_address = str(lists.eq(1)).split("来自:")[1];print("my_ip:",my_ip);print("ip_address:",ip_address)
运行结果:
my_ip: 117.151.77.3
ip_address: 中国湖北武汉 移动
python使用www.ip138.com作为解析对象 获取公网ip及ip所属地区相关推荐
- python 获取公网 外网 ip 几种方式
实例如下: from urllib.request import urlopen from json import loadmy_ip = urlopen('http://ip.42.pl/raw') ...
- Python培训分享:Python内置标准异常及其解析
本期小编为大家带来的Python培训教程是关于"Python内置标准异常及其解析"的内容,我们都知道,在Python技术运作下,总会出现一些Python无法正常处理的程序时就会发生 ...
- python中if __name__ == '__main__': 的解析
2019独角兽企业重金招聘Python工程师标准>>> python中if __name__ == '__main__': 的解析 当你打开一个.py文件时,经常会在代码的最下面看到 ...
- python legb_Python变量作用域LEGB用法解析
这篇文章主要介绍了Python变量作用域LEGB用法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 闭包就是, 函数内部嵌套函数. 而 装饰器只 ...
- Python基础(六)--类与对象
目录 Python基础(六)--类与对象 1 类与对象的基本概念 1.1 什么是对象 1.2 什么是类 1.3 类与对象的关系 2 定义与初始化 2.1 类的定义 2.2 对象的初始化 2.3 动态增 ...
- OC中解析对象(json)
2019独角兽企业重金招聘Python工程师标准>>> 解析对象(json) 1.大括号代表字典 2.中括号(小括号)代表数组 3.冒号的左右两边分别为键和值(key:value) ...
- Python 源码学习:类型和对象
Python 是一门解释型,动态类型,多范式的编程语言,当我们从 python.org 下载并安装运行 Python 的某个分发版本时,我们实际上是在运行由 C 语言编写的 CPython ,除此之外 ...
- 上海交通大学python期末考试样题加解析_上海交通大学python期末考试样题加解析...
<上海交通大学python期末考试样题加解析>由会员分享,可在线阅读,更多相关<上海交通大学python期末考试样题加解析(7页珍藏版)>请在人人文库网上搜索. 1.升够上伙归 ...
- 小白IT:从0~明白带你体验python中做上帝感觉--一切皆对象,处处是多态——面向对象
文章目录 Python 面向对象从0到基础 一.面向对象 1 面向过程VS面向对象** 2 了解一些名词: 3 类 类的声明 **类的作用:属性引用和实例化** **定义函数和类的区别** 类属性的查 ...
- python爬虫 模拟登录人人网过程解析
这篇文章主要介绍了python爬虫 模拟登录人人网过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 equests 提供了一个叫做sessio ...
最新文章
- 学习笔记:数据分析和处理(ML计算模型前的预处理)——持续更新
- 过滤内容字段_巧用参数组件和过滤组件,教你快速定位目标数据
- 简说创业公司的技术选型,从BearyChat的开发说起
- 用extjs4做个登录框
- php 输出json utf8,php json_encode utf-8中文问题
- 小程序修改数组中对象的某个值或者修改对象值
- js self = this的解释
- 【转】Linux内核报文收发
- C#对Windows服务组的启动与停止
- 403 常见原因 java_科普 httpClient 403 Forbidden (JAVA方向分析)
- Win10 专业版激活!
- Android 屏幕画笔实现
- docker搭建pgadmin并挂载
- 《YUI 3 Cookbook 中文版》
- 动易CMS粘贴word图片且图片文件自动上传功能
- 学习笔记(26):NumPy数据分析-NumPy 统计函数-var方差
- 保护眼睛缓解疲劳的方法(常用电脑的朋友)
- xposed+justtrustme
- Katalon Studio:一款静候你使用的免费自动化测试工具
- n个单词输入次数 c语言,C语言问题,从键盘输入n个英语单词.输入格式为n,w1,w2,w3…wn,其中n表示随后输入的英语...