之前我們介紹了正規表示式,可能有的小夥伴也對寫正規表示式的用法還不夠熟練,沒關係,我們還有乙個更強大的工具,叫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 但...