文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

通过python爬虫mechanize库爬取本机ip地址的方法

2024-04-02 19:55

关注

需求分析

最近,各平台更新的ip属地功能非常火爆,因此呢,也出现了许多新的网络用语,比如说“xx加几分”,“xx扣大分”等等,非常的有趣啊

可是呢,最近一个小伙伴和我说,“仙草哥哥,我也想查看一下自己的ip地址,可是我不会啊,我应该怎么样才能查看到自己的ip地址呢?”

关于如何查看自己的ip地址,这个我记得我在很早之前已经写过了,有兴趣的话可以查看一下我的这篇文章,当然这次呢,我会换一个复古的方式,使用mechanize进行爬取

实现分析

python中的mechanize算是一个比较古老的库了,在python2的时代中,使用的多一些,在python3以后就很少使用了,现在已经是2202年了,可能很多人都没听说过mechanize,这不要紧,我们先来简单的讲解一下,如何使用mechanize

其实,mechanize的使用方法,和内置的urllib使用方法非常的相似,也就是说,只要你学会了如何使用urllib,那么就能够顺利的使用mechanize

首先,我们需要导入mechanize,并且创建一个Browser

import mechanize
browser = mechanize.Browser()

然后通过open方法,直接打开一个网址,这个和urllib中的设想都是一样的,也就说,像打开本机文件那样,轻松的打开一个远程的文件

file = br.open(url)

然后,我们需要通过read()方法,读取这个文件中的内容

content = file.read()

但是需要注意的是,和以二进制的方法打开一个文件相似,通过read()读取得到的内容,是二进制的形式,必须要通过decode()方法,进行解码

html = content.decode()

当然,这个时候可能有的小伙伴要问了,默认的user-agent是什么样的呢?如何修改user-agent呢?其实使用mechanize的时候,设置user-agent并不困难,只需要通过addheaders就可以了

brower.addheaders = [("user-agent", "Mozilla/5.0")]

另外,别忘记了要设置是否遵守robots.txt协议,通过set_handle_robots()完成这项设置

brower.set_handle_robots(False)

这样,我们的基本操作就已经完成了,可以实际使用一下了

实际使用

比如说,我们通过mechanize发起一个请求

import mechanize
import json
from base64 import b64decode
br = mechanize.Browser()
url = b64decode("aHR0cDovL2h0dHBiaW4ub3JnL2dldA==").decode()
r = br.open(url).read().decode()
r = json.loads(r)
print("当前请求头:", r["headers"]["User-Agent"])

从这里,我们可以看出,使用mechanize发起请求的时候,默认的请求头就是urllib,也就是说,这段代码实际上相当于

import json
from urllib.request import urlopen
from base64 import b64decode
url = b64decode("aHR0cDovL2h0dHBiaW4ub3JnL2dldA==").decode()
r = urlopen(url).read().decode()
r = json.loads(r)
print("当前请求头:", r["headers"]["User-Agent"])

完整代码演示

那么,下面就是完整的通过mechanize查询本机ip地址的方法

import mechanize
import json
from base64 import b64decode
br = mechanize.Browser()
br.addheaders = [("user-agent", "Mozilla/5.0")]
br.set_handle_robots(False)
url = b64decode("aHR0cDovL2h0dHBiaW4ub3JnL2dldA==").decode()
r = br.open(url).read().decode()
r = json.loads(r)
print("当前请求头:", r["headers"]["User-Agent"])
print("当前ip地址:", r["origin"])

这个时候,可能有的小伙伴非常的困惑,查询本机ip地址,那我不是直接通过百度搜索,搜索ip就行了吗,为什么还需要自己写程序呢?

嗯。。。好吧,我觉得你说的也很对,但是,你不觉得尝试一下mechanize的使用超级酷嘛?

到此这篇关于通过python爬虫mechanize库爬取本机的ip地址的文章就介绍到这了,更多相关python爬虫ip地址内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯