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

python 如何使用find和find_all爬蟲(chóng)、找文本的實(shí)現(xiàn)

 更新時(shí)間:2020年10月16日 08:33:44   作者:狗風(fēng)暴  
這篇文章主要介紹了python 如何使用find和find_all,爬蟲(chóng)、找文本,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

這篇文章我們來(lái)講講如何在python使用bs4模塊返回值中正確使用find和find_all來(lái)取值。

我們先來(lái)看看find函數(shù)在兩種場(chǎng)景使用: 一、 find在字符串(str)時(shí)可以查找使用。

在字符串(str)是怎么來(lái)使用find函數(shù),find函數(shù)就是找到的意思。

我們來(lái)看看下面案例

#---------案例1-----------
a='0123456789'#因?yàn)槲覀冸娔X中的字節(jié)都是從0開(kāi)始算第一個(gè)位置
b=a.find('0')#這行代碼的意思就是我要查找a中0的位置
print(b)

>>0

#這里就是打印出來(lái)的內(nèi)容

應(yīng)為0在a中的第0個(gè)位置

在來(lái)試試第二個(gè)案例

#---------案例2-----------
a='0123456789' 
b=a.find('5')#我要查找a中5的位置
print(b)

>>5

其中你要查找的內(nèi)容不在a中,則會(huì)返回 -1 。在str中的使用方法說(shuō)到這里。

二、 find在bs4模塊返回值中怎么使用

我們?cè)谡n堂上學(xué)過(guò),bs4返回的值是 <class 'bs4.BeautifulSoup'>

假設(shè)我把把bs4返回的值賦值給 bs

這時(shí)我們就要用 bs.find(class_=‘one')

這個(gè)代碼就是在bs值中從上往下找,找到第一個(gè)類(lèi)等于one的值。

如果下圖

在這里插入圖片描述

從上到下找是不是我標(biāo)出來(lái)藍(lán)色區(qū)域是我要找的類(lèi),對(duì)的我們把他賦值給one,我們把他打印出來(lái)

print('one')

這時(shí)候系統(tǒng)就會(huì)返回這樣一個(gè)值給我們,如下圖

在這里插入圖片描述

大家看,他返回的是從 class='one'開(kāi)始到這個(gè)類(lèi)標(biāo)簽ul結(jié)束,對(duì)的,他不會(huì)返回其他值,他只會(huì)返回這個(gè)類(lèi)的標(biāo)簽開(kāi)始到結(jié)束。

所以當(dāng)bs4返回值時(shí),第一步使用find找打包含自己要找的所有值中第一個(gè)父類(lèi),再賦值給函數(shù),這樣這個(gè)函數(shù)就是我們進(jìn)行下一步查找的對(duì)象。

接下倆我們就還可以使用find(找到)或者find_all(找到全部一樣的),來(lái)定位函數(shù)位置,像圖中:

在這里插入圖片描述

class="navbar-branding"就只有一個(gè),我們像打印出 開(kāi)發(fā)者的網(wǎng)上家園 怎么寫(xiě)

這時(shí)候我們假設(shè),上面bs.find(class_='one')賦值給one函數(shù)那么我們就從one開(kāi)始查找
one.find(class="navbar-branding")這樣查找出來(lái)的內(nèi)哦讓那個(gè)就會(huì)返回給我們這個(gè)區(qū)域內(nèi)容

在這里插入圖片描述

然后這個(gè)區(qū)域的文字再title值里面,我們就沒(méi)辦法直接用 .text 取值了,所以我們要接著查找

one.find(class="navbar-branding")賦值給 one_1

然后用 one_1.find('a')來(lái)查找到a標(biāo)簽

后面加一個(gè)中括號(hào)取值[‘title']這樣打印出來(lái)內(nèi)容就是“開(kāi)發(fā)者的網(wǎng)上家園”了。

連起來(lái)就是這樣寫(xiě)

print(one_1.find('a') ['title'])

下面我們把代碼連起來(lái)打一遍看圖

在這里插入圖片描述

看代碼

one=bs.find(class_='one')
		one_1=one.find(class="navbar-branding")
	print(one_1.find('a') ['title'])

>>開(kāi)發(fā)者的網(wǎng)上家園
#這就是最后返回的值

就這么簡(jiǎn)單。

三、 find_all在bs4模塊返回值中怎么使用

還是用上圖舉例

在這里插入圖片描述

我們可以看到如果我要取下面的 li 標(biāo)簽中的值怎么辦

這時(shí)候我們就得用到find_al了(查找全部一樣的)

先補(bǔ)充代碼到這個(gè)li標(biāo)簽的父類(lèi)

one=bs.find(class_='one')
one_1=one.find(class="navbar-branding")

然后我們用one_1來(lái)取值如下代碼

one_1.find_all('li')#這時(shí)候我們?nèi)≈盗嗽賝ne_1區(qū)域中所有有l(wèi)i便簽的內(nèi)容

他會(huì)返回給我們一個(gè)列表

列表時(shí)這樣的

<li>…</li>,<li>…</li>,<li>…</li>,<li>…</li>,<li>…</li>,<li>…</li>

每一個(gè)區(qū)域就是一個(gè)內(nèi)容,中間的。。。我時(shí)為了圖省事,其實(shí)都是內(nèi)容。

竟然得到這樣的一個(gè)列表我們就可以使用for I in one_1.find_all('li')

這樣取遍歷出這個(gè)列表的東西,然后取值,

或者我只要其中一個(gè)就是ne_1.find_all('li')[2] 后面加一個(gè)數(shù)字,

列表取值大家應(yīng)該都會(huì)把,這樣就可以定位到我們想要的東西了。

總結(jié)一下find就是查找某一項(xiàng)的第一個(gè)數(shù)據(jù),find_all就是找所有數(shù)據(jù),然后用for遍歷就能取出

到此這篇關(guān)于python 如何使用find和find_all爬蟲(chóng)、找文本的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)python find和find_all爬蟲(chóng) 內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python 正則式 概述及常用字符

    python 正則式 概述及常用字符

    python 正則,剛開(kāi)始需要注意的他的正則的獨(dú)特的地方。不同語(yǔ)言的正則稍有不同。
    2009-05-05
  • Python生成器generator原理及用法解析

    Python生成器generator原理及用法解析

    這篇文章主要介紹了Python生成器generator原理及用法解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07
  • 關(guān)于Qt6中QtMultimedia多媒體模塊的重大改變分析

    關(guān)于Qt6中QtMultimedia多媒體模塊的重大改變分析

    如果您一直在 Qt 5 中使用 Qt Multimedia,則需要對(duì)您的實(shí)現(xiàn)進(jìn)行更改。這篇博文將嘗試引導(dǎo)您完成最大的變化,同時(shí)查看 API 和內(nèi)部結(jié)構(gòu)
    2021-09-09
  • python輸出小數(shù)精度控制的方法

    python輸出小數(shù)精度控制的方法

    這篇文章主要介紹了python輸出小數(shù)控制的方法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05
  • Python生成短uuid的方法實(shí)例詳解

    Python生成短uuid的方法實(shí)例詳解

    python的uuid都是32位的,比較長(zhǎng),處理起來(lái)效率比較低。這篇文章主要介紹了Python生成短uuid的方法,需要的朋友可以參考下
    2018-05-05
  • Python調(diào)用C語(yǔ)言程序方法解析

    Python調(diào)用C語(yǔ)言程序方法解析

    這篇文章主要介紹了Python調(diào)用C語(yǔ)言程序方法解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07
  • Python socket網(wǎng)絡(luò)編程TCP/IP服務(wù)器與客戶端通信

    Python socket網(wǎng)絡(luò)編程TCP/IP服務(wù)器與客戶端通信

    這篇文章主要介紹了Python socket網(wǎng)絡(luò)編程TCP/IP服務(wù)器與客戶端通信的相關(guān)資料,這里對(duì)Scoket 進(jìn)行詳解并創(chuàng)建TCP服務(wù)器及TCP 客戶端實(shí)例代碼,需要的朋友可以參考下
    2017-01-01
  • python實(shí)現(xiàn)socket+threading處理多連接的方法

    python實(shí)現(xiàn)socket+threading處理多連接的方法

    今天小編就為大家分享一篇python實(shí)現(xiàn)socket+threading處理多連接的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-07-07
  • Python Django 前后端分離 API的方法

    Python Django 前后端分離 API的方法

    今天小編就為大家分享一篇Python Django 前后端分離 API的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-08-08
  • python內(nèi)置模塊之上下文管理contextlib

    python內(nèi)置模塊之上下文管理contextlib

    這篇文章介紹了python內(nèi)置模塊之上下文管理contextlib,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-06-06

最新評(píng)論