從零開始學網路爬蟲之BeautifulSoap

2021-07-25 05:45:14 字數 2039 閱讀 1003

之前我們介紹了正規表示式,可能有的小夥伴也對寫正規表示式的用法還不夠熟練,沒關係,我們還有乙個更強大的工具,叫beautiful soup,它可以與requests配合使用,在獲得網頁原始碼後進行分析,實在是很方便。這一節就讓我們一就一起來學習一下beautiful soup。

beautiful soup 3 目前已經停止開發,推薦在現在的專案中使用beautiful soup 4,不過它已經被移植到bs4了,也就是說匯入時我們需要 import bs4 。 

可以利用 pip 或者 easy_install 來安裝,以下兩種方法均可

1

easy_install

beautifulsoup4

1pip

install

beautifulsoup4

本文中知識針對個別常用的知識點進行簡介,詳細的資訊請參考如下官方文件。

官方文件

(1)入門例子

import requests

from bs4 import beautifulsoup

html=requests.get("")

bsobj=beautifulsoup(html.text)

print bsobj.h1

(2)beautifulsoup中的find()與findall()

find_all() 方法搜尋當前tag的所有tag子節點,並判斷是否符合過濾器的條件, find則是找到乙個為止

tag:.findall()

attributes: .findall("span",})      #

text:namelist=bsobj.findall(text="the prince")

print len(namelist)

keywords:    alltext=bsobj.findall(id="text")       #等價於alltext=bsobj.findall("",)  

print alltext[0].get_text()

(3)處理子標籤和其他後代標籤

import requests

from bs4 import beautifulsoup

html=requests.get("")

bsobj=beautifulsoup(html.text)

for child in bsobj.find("table",).children

print child

(4)處理兄弟標籤

import requests

from bs4 import beautifulsoup

html=requests.get("")

bsobj=beautifulsoup(html.text)

for sibling in  bsobj.find("table",).tr.next_siblings

print sibling

(5)處理父標籤

import requests

from bs4 import beautifulsoup

html=requests.get("")

bsobj=beautifulsoup(html.text)

print bsobj.find("img",).parent.previous_sibling.get_text()

4.  beautifulsoup 與正規表示式

import requests

from bs4 import beautifulsoup

html=requests.get("")

bsobj=beautifulsoup(html.text)

images=bsobj.findall("img",)

for image in images:

print image["src"]

5. beautiful soup與lambda

bsobj.findall(lambda tag: len(tag.attrs)==2)

從零開始學jQuery Validate 之01

jquery validate 外掛程式為表單提供了強大的驗證功能,讓客戶端表單驗證變得更簡單,同時提供了大量的定製選項,滿足應用程式各種需求。該外掛程式 了一套有用的驗證方法,包括 url 和電子郵件驗證,同時提供了乙個用來編寫使用者自定義方法的 api。所有的 方法預設使用英語作為錯誤資訊,且已...

從零開始學Python 三(網路爬蟲)

urllib庫是python的乙個操作url功能強大的庫,經常用在爬蟲程式中。使用上述 我們便可以在程式中開啟並爬取網頁。2.urllib.request.urlopen 使用urlopen方法,引數為想爬取的網頁。成功之後,把爬取的內容賦值給file變數。另,讀取file資料有2種方法 file....

從零開始學Python網路爬蟲第1章

本人本職是第三方實驗室環境監測方面的實驗員,但業餘愛好程式設計。1.1變數 我中間的哪行是列印字元a,錯誤演示 1.2字串 字串用 單引號括起來,可以用 號鏈結,如a ab b cd a b abcd 而a 3 ababab 索引和切片 a ilove you a 0 i a 0 5 ilove 但...