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

目录
  • 需求分析
  • 实现分析
  • 实际使用
  • 完整代码演示

需求分析

最近,各平台更新的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地址内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 详解Python判定IP地址合法性的三种方法

    IP合法性校验是开发中非常常用的,看起来很简单的判断,作用确很大,写起来比较容易出错,今天我们来总结一下,看一下3种常用的IP地址合法性校验的方法. IPv4的ip地址格式:(1~255).(0~255).(0~255).(0~255) 方法1: 正则表达式判定法 最简单的实现方法是构造一个正则表达式.判断用户的输入与正则表达式是否匹配.若匹配则是正确的IP地址,否则不是正确的IP地址. 复制代码 代码如下: ^(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|[1-9])\.(

  • Python实现根据IP地址和子网掩码算出网段的方法

    本文实例讲述了Python实现根据IP地址和子网掩码算出网段的方法.分享给大家供大家参考.具体如下: 该代码在Linux环境2.6.6python版本测试通过! #!/usr/bin/env python #_*_encoding:utf-8_*_ #Input your ip address and netmask to figure out your network . #申明:此脚本为交互式,默认情况下请执行python network.py from IPy import IP inpu

  • Python反爬虫技术之防止IP地址被封杀的讲解

    在使用爬虫爬取别的网站的数据的时候,如果爬取频次过快,或者因为一些别的原因,被对方网站识别出爬虫后,自己的IP地址就面临着被封杀的风险.一旦IP被封杀,那么爬虫就再也爬取不到数据了. 那么常见的更改爬虫IP的方法有哪些呢? 1,使用动态IP拨号器服务器. 动态IP拨号服务器的IP地址是可以动态修改的.其实动态IP拨号服务器并不是什么高大上的服务器,相反,属于配置很低的一种服务器.我们之所以使用动态IP拨号服务器,不是看中了它的计算能力,而是能够实现秒换IP. 动态IP拨号服务器有一个特点,就是每

  • python中mechanize库的简单使用示例

    复制代码 代码如下: #!/usr/bin/env/ python#coding=utf-8import mechanizeimport cookielib # Cookie Jarcj = cookielib.LWPCookieJar() # Browserbr = mechanize.Browser()br.set_cookiejar(cj) # Browser optionsbr.set_handle_equiv(True)br.set_handle_gzip(True)br.set_ha

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

    目录 需求分析 实现分析 实际使用 完整代码演示 需求分析 最近,各平台更新的ip属地功能非常火爆,因此呢,也出现了许多新的网络用语,比如说“xx加几分”,“xx扣大分”等等,非常的有趣啊 可是呢,最近一个小伙伴和我说,“仙草哥哥,我也想查看一下自己的ip地址,可是我不会啊,我应该怎么样才能查看到自己的ip地址呢?” 关于如何查看自己的ip地址,这个我记得我在很早之前已经写过了,有兴趣的话可以查看一下我的这篇文章,当然这次呢,我会换一个复古的方式,使用mechanize进行爬取 实现分析 pyt

  • Python爬虫小例子——爬取51job发布的工作职位

    概述 不知从何时起,Python和爬虫就如初恋一般,情不知所起,一往而深,相信很多朋友学习Python,都是从爬虫开始,其实究其原因,不外两方面:其一Python对爬虫的支持度比较好,类库众多.其二Pyhton的语法简单,入门容易.所以两者形影相随,不离不弃,本文主要以一个简单的小例子,简述Python在爬虫方面的简单应用,仅供学习分享使用,如有不足之处,还请指正. 涉及知识点 本例主要爬取51job发布的工作职位,用到的知识点如下: 开发环境及工具:主要用到Python3.7 ,IDE为PyC

  • python使用requests库爬取拉勾网招聘信息的实现

    按F12打开开发者工具抓包,可以定位到招聘信息的接口 在请求中可以获取到接口的url和formdata,表单中pn为请求的页数,kd为关请求职位的关键字 使用python构建post请求 data = { 'first': 'true', 'pn': '1', 'kd': 'python' } headers = { 'referer': 'https://www.lagou.com/jobs/list_python/p-city_0?&cl=false&fromSearch=true&a

  • Python爬虫简单运用爬取代理IP的实现

    功能1: 爬取西拉ip代理官网上的代理ip 环境:python3.8+pycharm 库:requests,lxml 浏览器:谷歌 IP地址:http://www.xiladaili.com/gaoni/ 分析网页源码: 选中div元素后右键找到Copy再深入子菜单找到Copy Xpath点击一下就复制到XPath 我们复制下来的Xpth内容为:/html/body/div/div[3]/div[2]/table/tbody/tr[50]/td[1] 虽然可以查出来ip,但不利于程序自动爬取所有

  • Python爬虫实战之爬取京东商品数据并实实现数据可视化

    一.开发工具 Python版本:3.6.4 相关模块: DecryptLogin模块: argparse模块: 以及一些python自带的模块. 二.环境搭建 安装Python并添加到环境变量,pip安装需要的相关模块即可. 三.原理简介 原理其实挺简单的,首先,我们利用之前开源的DecryptLogin库来实现一下微博的模拟登录操作: '''模拟登录京东''' @staticmethod def login(): lg = login.Login() infos_return, session

  • Python爬虫实战之爬取某宝男装信息

    目录 知识点介绍 实现步骤 1. 分析目标网站 2. 获取单个商品界面 3. 获取多个商品界面 4. 获取商品信息 5. 保存到MySQL数据库 完整代码 知识点介绍 本次爬取用到的知识点有: 1. selenium 2. pymysql 3  pyquery 实现步骤 1. 分析目标网站 1. 打开某宝首页, 输入"男装"后点击"搜索", 则跳转到"男装"的搜索界面. 2. 空白处"右击"再点击"检查"审

  • Python爬虫利用多线程爬取 LOL 高清壁纸

    目录 页面分析 抓取思路 数据采集 程序运行 总结 前言: 随着移动端的普及出现了很多的移动 APP,应用软件也随之流行起来. 最近又捡起来了英雄联盟手游,感觉还行,PC 端英雄联盟可谓是爆火的游戏,不知道移动端的英雄联盟前途如何,那今天我们使用到多线程的方式爬取 LOL 官网英雄高清壁纸. 页面分析 目标网站:英雄联盟 官网界面如图所示,显而易见,一个小图表示一个英雄,我们的目的是爬取每一个英雄的所有皮肤图片,全部下载下来并保存到本地. 次级页面 上面的页面我们称为主页面,次级页面也就是每一个

  • Python爬虫DOTA排行榜爬取实例(分享)

    1.分析网站 打开开发者工具,我们观察到排行榜的数据并没有在doc里 doc文档 在Javascript里我么可以看到下面代码: ajax的post方法异步请求数据 在 XHR一栏里,我们找到所请求的数据 json存储的数据 请求字段为: post请求字段 2.伪装浏览器,并将json数据存入excel里面 获取信息 将数据保存到excel中 3.结果展示 以上这篇Python爬虫DOTA排行榜爬取实例(分享)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • python爬虫使用正则爬取网站的实现

    本文章的所有代码和相关文章, 仅用于经验技术交流分享,禁止将相关技术应用到不正当途径,滥用技术产生的风险与本人无关. 本文章是自己学习的一些记录.欢迎各位大佬点评! 首先 今天是第一天写博客,感受到了博客的魅力,博客不仅能够记录每天的代码学习情况,并且可以当作是自己的学习笔记,以便在后面知识点不清楚的时候前来复习.这是第一次使用爬虫爬取网页,这里展示的是爬取豆瓣电影top250的整个过程,欢迎大家指点. 这里我只爬取了电影链接和电影名称,如果想要更加完整的爬取代码,请联系我.qq 1540741

  • Python爬虫进阶之爬取某视频并下载的实现

    这几天在家闲得无聊,意外的挖掘到了一个资源网站(你懂得),但是网速慢广告多下载不了种种原因让我突然萌生了爬虫的想法. 下面说说流程: 一.网站分析 首先进入网站,F12检查,本来以为这种低端网站很好爬取,是我太低估了web主.可以看到我刷新网页之后,出现了很多js文件,并且响应获取的代码与源代码不一样,这就不难猜到这个网站是动态加载页面. 目前我知道的动态网页爬取的方法只有这两种:1.从网页响应中找到JS脚本返回的JSON数据:2.使用Selenium对网页进行模拟访问.源代码问题好解决,重要的

随机推荐