欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

通過python爬蟲mechanize庫爬取本機ip地址的方法

 更新時間:2022年08月26日 09:18:13   作者:仙草哥哥  
python中的mechanize算是一個比較古老的庫了,在python2的時代中,使用的多一些,在python3以后就很少使用了,現(xiàn)在已經(jīng)是2202年了,可能很多人都沒聽說過mechanize,這不要緊,我們先來簡單的講解一下,如何使用mechanize,感興趣的朋友一起看看吧

需求分析

最近,各平臺更新的ip屬地功能非常火爆,因此呢,也出現(xiàn)了許多新的網(wǎng)絡(luò)用語,比如說“xx加幾分”,“xx扣大分”等等,非常的有趣啊

可是呢,最近一個小伙伴和我說,“仙草哥哥,我也想查看一下自己的ip地址,可是我不會啊,我應(yīng)該怎么樣才能查看到自己的ip地址呢?”

關(guān)于如何查看自己的ip地址,這個我記得我在很早之前已經(jīng)寫過了,有興趣的話可以查看一下我的這篇文章,當然這次呢,我會換一個復古的方式,使用mechanize進行爬取

實現(xiàn)分析

python中的mechanize算是一個比較古老的庫了,在python2的時代中,使用的多一些,在python3以后就很少使用了,現(xiàn)在已經(jīng)是2202年了,可能很多人都沒聽說過mechanize,這不要緊,我們先來簡單的講解一下,如何使用mechanize

其實,mechanize的使用方法,和內(nèi)置的urllib使用方法非常的相似,也就是說,只要你學會了如何使用urllib,那么就能夠順利的使用mechanize

首先,我們需要導入mechanize,并且創(chuàng)建一個Browser

import mechanize
browser = mechanize.Browser()

然后通過open方法,直接打開一個網(wǎng)址,這個和urllib中的設(shè)想都是一樣的,也就說,像打開本機文件那樣,輕松的打開一個遠程的文件

file = br.open(url)

然后,我們需要通過read()方法,讀取這個文件中的內(nèi)容

content = file.read()

但是需要注意的是,和以二進制的方法打開一個文件相似,通過read()讀取得到的內(nèi)容,是二進制的形式,必須要通過decode()方法,進行解碼

html = content.decode()

當然,這個時候可能有的小伙伴要問了,默認的user-agent是什么樣的呢?如何修改user-agent呢?其實使用mechanize的時候,設(shè)置user-agent并不困難,只需要通過addheaders就可以了

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

另外,別忘記了要設(shè)置是否遵守robots.txt協(xié)議,通過set_handle_robots()完成這項設(shè)置

brower.set_handle_robots(False)

這樣,我們的基本操作就已經(jīng)完成了,可以實際使用一下了

實際使用

比如說,我們通過mechanize發(fā)起一個請求

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發(fā)起請求的時候,默認的請求頭就是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的使用超級酷嘛?

到此這篇關(guān)于通過python爬蟲mechanize庫爬取本機的ip地址的文章就介紹到這了,更多相關(guān)python爬蟲ip地址內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Django文件存儲 默認存儲系統(tǒng)解析

    Django文件存儲 默認存儲系統(tǒng)解析

    這篇文章主要介紹了Django文件存儲 默認存儲系統(tǒng)解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-08-08
  • Python實現(xiàn)快速傅里葉變換的方法(FFT)

    Python實現(xiàn)快速傅里葉變換的方法(FFT)

    這篇文章主要介紹了Python實現(xiàn)快速傅里葉變換的方法(FFT),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-07-07
  • Python基礎(chǔ)之內(nèi)置模塊詳解

    Python基礎(chǔ)之內(nèi)置模塊詳解

    Python內(nèi)置的模塊有很多,我們也已經(jīng)接觸了不少相關(guān)模塊,接下來咱們就來做一些項目開發(fā)中常用的模塊匯總和介紹,需要的朋友可以參考下
    2021-06-06
  • Python中字符串的基礎(chǔ)介紹及常用操作總結(jié)

    Python中字符串的基礎(chǔ)介紹及常用操作總結(jié)

    字符串輸出格式與輸入的樣子相同,都是用撇號包裹,撇號和其它特殊字符用用反斜杠轉(zhuǎn)義。如果字符串中有單撇號而沒有雙撇號則用雙撇號包裹,否則應(yīng)該用單撇號包裹。后面要介紹的print語句可以不帶撇號或轉(zhuǎn)義輸出字符串
    2021-09-09
  • python實現(xiàn)控制COM口的示例

    python實現(xiàn)控制COM口的示例

    今天小編就為大家分享一篇python實現(xiàn)控制COM口的示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • 詳解Python中的Numpy、SciPy、MatPlotLib安裝與配置

    詳解Python中的Numpy、SciPy、MatPlotLib安裝與配置

    這篇文章主要介紹了詳解Python中的Numpy、SciPy、MatPlotLib安裝與配置,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • Python條件語句的使用

    Python條件語句的使用

    python 語句是按固定順序執(zhí)行的,先執(zhí)行前面的語句,再執(zhí)行后面的語句,這篇文章主要介紹了Python條件語句的用法,需要的朋友可以參考下
    2022-08-08
  • Pandas中迭代DataFrame行的方法總結(jié)

    Pandas中迭代DataFrame行的方法總結(jié)

    Python是進行數(shù)據(jù)分析的一種很好的語言,主要是因為以數(shù)據(jù)為中心的Python包的奇妙生態(tài)系統(tǒng),本文主要為大家介紹了如何在Pandas中迭代DataFrame中的行,有需要的可以參考下
    2023-09-09
  • 解決 jupyter notebook 回車換兩行問題

    解決 jupyter notebook 回車換兩行問題

    這篇文章主要介紹了解決 jupyter notebook 回車換兩行問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04
  • Python使用monkey.patch_all()解決協(xié)程阻塞問題

    Python使用monkey.patch_all()解決協(xié)程阻塞問題

    這篇文章主要介紹了Python使用monkey.patch_all()解決協(xié)程阻塞問題,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-04-04

最新評論