想入門 Python 爬蟲?那麼 Beautiful Soup 是你必須要學習的

2021-01-07 後端漫談

前面兩篇介紹的是 Beautiful Soup 4 的基本對象類型和文檔樹的遍歷, 本篇介紹 Beautiful Soup 4 的文檔搜索

搜索文檔樹主要使用兩個方法 find() 和 find_all()

find_all():

find_all 是用於搜索節點中所有符合過濾條件的節點

那麼它支持哪些過濾器呢?

過濾器的類型:

字符串正則表達式列表True方法

字符串:

查找文檔中所有的標籤

soup.find_all('b')

正則表達式:

找出所有以b開頭的標籤

import refor tag in soup.find_all(re.compile("^b")): print(tag.name)

列表:

找到文檔中所有 a 標籤和 b 標籤

soup.find_all(["a", "b"])

True:

True 可以匹配任何值, 但是不會返回字符串節點

for tag in soup.find_all(True): print(tag.name)

方法:

可以定義一個方法, 方法只接受一個元素參數, 如果這個方法返回 True 表示當前元素匹配並且被找到, 如果不是則返回 False

這裡是官方文檔上面的例子:

下面代碼找到所有被文字包含的節點內容

find_all 的方法原型:

find_all( name , attrs , recursive , text , **kwargs )

name 參數:

name 參數可以查找所有名字為 name 的 tag, 字符串對象會被自動忽略掉

soup.find_all("p") 查找所有的 p 標籤

keyword 參數:

soup.find_all(id='link2',class_='title'), 這個將會查找到同時滿足這兩個屬性的標籤,這裡的class必須用class_傳入參數,因為class是python中的關鍵詞

有些屬性不能通過以上方法直接搜索,比如html5中的data-*屬性,不過可以通過attrs參數指定一個字典參數來搜索包含特殊屬性的標籤

data_soup.find_all(attrs={"data-foo": "value"})

text 參數:

通過 text 參數可以搜索文檔中的字符串內容, 與 name 參數的可選值一樣, text 參數接受 字符串 , 正則表達式 , 列表, True

soup.find_all("a", text="Elsie")

limit 參數:

find_all() 方法返回全部的搜索結構, 如果文檔樹很大那麼搜索會很慢, 如果我們不需要全部結果, 可以使用 limit 參數限制返回結果的數量, 效果與SQL中的limit關鍵字類似

soup.find_all("a", limit=2)

recursive 參數:

調用tag的 find_all() 方法時, Beautiful Soup 會檢索當前 tag 的所有子孫節點,如果只想搜索 tag 的直接子節點, 可以使用參數 recursive=False

soup.html.find_all("title", recursive=False)

find():

find( name , attrs , recursive , text , **kwargs )

find_all() 方法將返回文檔中符合條件的所有 tag, 儘管有時候我們只想得到一個結果, 比如文檔中只有一個標籤, 那麼使用 find_all() 方法來查找標籤就不太合適, 使用 find_all 方法並設置 limit=1 參數不如直接使用 find() 方法, 下面兩行代碼是等價的:

soup.find_all('title', limit=1)soup.find('title')

唯一的區別是 find_all() 方法的返回結果是值包含一個元素的列表, 而 find() 方法直接返回結果

find_all() 方法沒有找到目標是返回空列表, find() 方法找不到目標時, 返回 None.

CSS選擇器:

Beautiful Soup支持大部分的CSS選擇器: (更多請查閱官方文檔)

soup.select("body a") soup.select("html head title") soup.select("p > #link1") soup.select(".sister")

參考自 Beautiful Soup 4 官方文檔.

更多 python , php 原創文章, 關注我查看更多!

相關焦點

  • Python爬蟲從入門到精通(3): BeautifulSoup用法總結及多線程爬蟲爬取糗事百科
    BeautifulSoup庫可以對HTML或XML文件解析,查找到一個或多個標籤元素(tag),並獲取每個標籤裡的文本和屬性,這為我們python爬蟲從html文本裡提取所需要的內容提供了很大的便利。一個BeautifulSoup很好的特性是它接受一個str或byte對象後會對編碼自動檢測,並把當前文檔編碼並轉換成Unicode編碼,這樣你就不用擔心亂碼問題了。
  • python程序媛BeautifulSoup快速入門
    爬蟲最常用就是要在response回的html文件中獲取我們想要的資源,而常用方法除了正則就是BeautifulSoup庫了。其實,媛媛本人呢,是習慣使用正則的,不過經常聽到很多同學表示正則太複雜,想要使用BeautifulSoup庫,今天呢,就滿足大家,帶著大家超級簡單案例,快速入門。
  • Python爬蟲html解析,還在用BeautifulSoup嗎?試試PyQuery吧
    在初學python時,大家都喜歡寫些小腳本來爬些網頁,因為這能在最短的時間讓我們達到一種小小的滿足感,通常我們解析網頁時有幾種方法:正則表達式匹配 - 比較低級用beautifulsoup、pyquery等包解析用scrapy、pyspider等框架來解析其實,方法
  • 5分鐘快速學習掌握python爬蟲Beautifulsoup解析網頁
    python爬蟲用Beatifulsoup庫解析網頁提取所需元素新手看懂個人觀點:之前我們有講過爬蟲和網頁的一些聯繫,網頁的一些組成部分,爬蟲就是對網頁裡面的數據進行提取然後對其進行數據處理,篩選出所需部分,供需要者使用。
  • Python爬蟲教學(寫給入門的新手)
    前言剛學完python基礎,想學習爬蟲的新手,這裡有你想要的東西。
  • 爬蟲入門系列(四):HTML文本解析庫BeautifulSoup
    安裝 BeautifulSouppip install beautifulsoup4BeautifulSoup3 被官方放棄維護,你要下載最新的版本 BeautifulSoup4。HTML 標籤學習 BeautifulSoup4 前有必要先對 HTML 文檔有一個基本認識,如下代碼,HTML 是一個樹形組織結構。
  • Python爬蟲基礎教學(寫給入門的新手)
    前言剛學完python基礎,想學習爬蟲的新手,這裡有你想要的東西。本文著重點在於教新手如何學習爬蟲,並且會以外行人的思維進行形象地講解。最近我一兄弟想學,我就想寫個教學給他,然後想不如分享到網絡上,給熱愛學習的人們一起學習探討。
  • 技術分享|利用Python和BeautifulSoup進行網頁爬取(新手教程)
    使用Python與BeautifulSoup可以很容易的進行網頁爬取,通過網站爬蟲獲取信息可以幫助企業或個人節省很多的時間和金錢。學習本文之後,我相信大部分新手都能根據自己的需求來開發出相應的網頁爬蟲。
  • python爬蟲常用庫之BeautifulSoup詳解
    經過了前面幾篇文章的學習,估計你已經會爬不少中小型網站了。但是有人說,前面的正則很難唉,學不好。正則的確很難,有人說過:如果一個問題用正則解決,那麼就變成了兩個問題。所以說學不會是很正常的,不怕,除了正則,我們還可以用另外一個強大的庫來解析html。所以,今天的主題就是來學習這個強大的庫--BeautifulSoup,不過正則還是需要多多練習下的。
  • python爬蟲beautifulsoup4系列1
    前言本篇詳細介紹beautifulsoup4的功能,從最基礎的開始講起,讓小夥伴們都能入門
  • 如何開始寫你的第一個python腳本——簡單爬蟲入門!
    好多朋友在入門python的時候都是以爬蟲入手,而網絡爬蟲是近幾年比較流行的概念,特別是在大數據分析熱門起來以後,學習網絡爬蟲的人越來越多,哦對,現在叫數據挖掘了!其實,一般的爬蟲具有2個功能:取數據和存數據!好像說了句廢話。。。
  • Requests的好基友BeautifulSoup4
    為什麼說是好基友呢,因為python爬蟲入門就要學bs4, 他是一個解析html的庫,非常好用.requests請求 bs4解析妥妥的.1.我們來看一下基本使用苦逼的博主沒有人給充值,想拿廣告當測試頁面有沒有,所以我們就拿北京居住證辦理平臺當測試頁面吧.測試頁面是張這個樣子的:
  • Python網頁爬蟲入門指導
    由於之前有過一些html文本自然語言處理的工作經驗,所以使用過beautifulSoup4和正則表達式,因此,前不久的學習算是一次印象加深。雖然之前有過一些基礎,但是這次還是耗費了一些時間,因為網上,尤其是中文科技網站太多坑要踩,所以,我在這裡用最簡潔的方式寫下網頁爬蟲的入門方法,希望能夠幫助到對網頁爬蟲感興趣卻無從下手的同學。
  • [Python從零到壹] 六.網絡爬蟲之BeautifulSoup爬取豆瓣TOP250電影詳解
    所有文章都將結合案例、代碼和作者的經驗講解,真心想把自己近十年的編程經驗分享給大家,希望對您有所幫助,文章中不足之處也請海涵。Python系列整體框架包括基礎語法10篇、網絡爬蟲30篇、可視化分析10篇、機器學習20篇、大數據分析20篇、圖像識別30篇、人工智慧40篇、Python安全20篇、其他技巧10篇。
  • 「小白學爬蟲連載(5)」——Beautiful Soup庫詳解
    Beautiful Soup安裝與測試對於Windows平臺:首先介紹一種簡單的安裝包的方法,打開cmd,執行pip installbeautifulsoup4,這裡千萬不要忘記最後的數字4。如果第一種方法出現如timeout等問題,我們還可以採用手動方法安裝,步驟如下:登陸該網站(https://www.lfd.uci.edu/~gohlke/pythonlibs/)下載你所需要的第三包的whl文件(用Ctrl+F命令搜索你想安裝的第三方包),建議存儲在Python安裝目錄中的\Lib\site-packages目錄下。
  • Python學習第141課——Python爬蟲簡介
    【每天幾分鐘,從零入門python編程的世界!】今天我們簡單的了解下網絡爬蟲,網絡爬蟲其實就是一個自動獲取網頁內容的程序。Python的爬蟲需要用到一個第三方的庫requests。requests庫可以在git bash中使用命令pip install requests進行安裝。
  • Python爬蟲學習的完整路線推薦
    那些所有你認為必須的前置知識,都是可以在完成目標的過程中學到的。基於python爬蟲,我們整理了一個完整的學習框架:篩選和甄別學習哪些知識,在哪裡去獲取資源是許多初學者共同面臨的問題。接下來,我們將學習框架進行拆解,分別對每個部分進行詳細介紹和推薦一些相關資源,告訴你學什麼、怎麼學、在哪裡學。
  • python爬蟲入門-通過茅臺腳本講些爬蟲知識,應用和價值
    搶茅臺的腳本其實屬於爬蟲腳本的一類,它實現了模擬登陸,模擬訪問並抓取數據。我們從爬蟲開始來學習Python做項目,從這篇開始記錄下爬蟲相關的筆記和知識點。正文什麼是爬蟲到底什麼是爬蟲?你可以理解為爬蟲是網際網路上的一隻蜘蛛,如果遇到一些網絡數據或資源,這隻「蜘蛛」可以把這些數據和資源爬取下來。
  • 從0開始學Python爬蟲——Lesson2
    01安裝selenium庫Python爬蟲常用的庫有:beautifulsoup(美麗湯)、requests、pyquery、selenium等等,某人云:站在巨人的肩膀上,那麼你離成功會更近。有一句從另一個方面講述了這個道理:人生苦短,請用Python,因為Python擁有強大的標準庫與第三方庫,你不用花時間去編寫,直接拿來用即可。本系列教程主要用的就是selenium庫來進行與瀏覽器交互,完成自動化處理,從而達到爬蟲的目的。
  • BeautifulSoup | 讓你一次性搞清楚BeautifulSoup!(上)
    說到BeautifulSoup大家一定都不陌生,它是python的一個庫,最主要的功能是從網頁抓取數據,但是繁瑣的規矩和看不懂網頁的結構總讓人似懂非懂