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

通過(guò)python爬蟲mechanize庫(kù)爬取本機(jī)ip地址的方法

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

需求分析

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

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

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

實(shí)現(xiàn)分析

python中的mechanize算是一個(gè)比較古老的庫(kù)了,在python2的時(shí)代中,使用的多一些,在python3以后就很少使用了,現(xiàn)在已經(jīng)是2202年了,可能很多人都沒(méi)聽說(shuō)過(guò)mechanize,這不要緊,我們先來(lái)簡(jiǎn)單的講解一下,如何使用mechanize

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

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

import mechanize
browser = mechanize.Browser()

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

file = br.open(url)

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

content = file.read()

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

html = content.decode()

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

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

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

brower.set_handle_robots(False)

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

實(shí)際使用

比如說(shuō),我們通過(guò)mechanize發(fā)起一個(gè)請(qǐng)求

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("當(dāng)前請(qǐng)求頭:", r["headers"]["User-Agent"])

從這里,我們可以看出,使用mechanize發(fā)起請(qǐng)求的時(shí)候,默認(rèn)的請(qǐng)求頭就是urllib,也就是說(shuō),這段代碼實(shí)際上相當(dāng)于

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("當(dāng)前請(qǐng)求頭:", r["headers"]["User-Agent"])

完整代碼演示

那么,下面就是完整的通過(guò)mechanize查詢本機(jī)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("當(dāng)前請(qǐng)求頭:", r["headers"]["User-Agent"])
print("當(dāng)前ip地址:", r["origin"])

這個(gè)時(shí)候,可能有的小伙伴非常的困惑,查詢本機(jī)ip地址,那我不是直接通過(guò)百度搜索,搜索ip就行了嗎,為什么還需要自己寫程序呢?

嗯。。。好吧,我覺(jué)得你說(shuō)的也很對(duì),但是,你不覺(jué)得嘗試一下mechanize的使用超級(jí)酷嘛?

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

相關(guān)文章

  • Django文件存儲(chǔ) 默認(rèn)存儲(chǔ)系統(tǒng)解析

    Django文件存儲(chǔ) 默認(rèn)存儲(chǔ)系統(tǒng)解析

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

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

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

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

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

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

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

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

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

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

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

    Python條件語(yǔ)句的使用

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

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

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

    解決 jupyter notebook 回車換兩行問(wèn)題

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

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

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

最新評(píng)論