欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

python爬蟲怎么使用BeautifulSoup庫

本篇內(nèi)容介紹了“python爬蟲怎么使用BeautifulSoup庫”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠?qū)W有所成!

海口網(wǎng)站建設公司創(chuàng)新互聯(lián),海口網(wǎng)站設計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為海口成百上千提供企業(yè)網(wǎng)站建設服務。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站制作要多少錢,請找那個售后服務好的海口做網(wǎng)站的公司定做!

BeautiSoup類的基本元素及用bs4遍歷HTML基本方法

1,BeautifulSoup類的基本元素

有5種基本元素:

Tag: 標簽,最基本的信息組織單元, .

Name: 標簽名字, ..name :返回一個字符串

Attributes: 標簽的屬性, ..attrs :返回一個字典類型

NavigableString:標簽中的字符串, ..string :返回一個字符串

Comment: 標簽中的注釋信息,會在 ..string中獲得。

比如現(xiàn)在有一個HTML文檔:

The demo python introduces several python courses.

Python is a wonderful general-purpose programming language. You can learn Python from novice to professional by tracking the following courses:

Basic Python

and

Advanced Python.

This is not a Comment.

我們對此文檔用BS類的基本元素進行應用:

先煲一鍋湯:>>> soup = BeautifulSoup(html, "html.parser")

用 .獲得一個標簽的全部信息:

如:>>> soup.p

python爬蟲怎么使用BeautifulSoup庫

用.name獲得這個標簽的名字:

如:>>> p.name

python爬蟲怎么使用BeautifulSoup庫

Tag屬性還有另外一個重要的用法, 就是當我們對一個標簽內(nèi)的子節(jié)點進行遍歷時,可能會有不是標簽的節(jié)點,比如’\n’等,此時可利用bs4庫提供的bs4.element.Tag屬性來進行甄別。

用到 isinstance()方法。比如:isinstance(soup.a, bs4.element.Tag)

python爬蟲怎么使用BeautifulSoup庫

用.attrs獲得這個標簽的屬性:

如>>> soup.a.attrs

python爬蟲怎么使用BeautifulSoup庫

可以對a標簽的具體屬性進行獲得:>>> soup.a['href']

python爬蟲怎么使用BeautifulSoup庫

用.string獲得這個標簽中的字符串信息:

如:>>> soup.p.string:

python爬蟲怎么使用BeautifulSoup庫

我們看到.string可以跨越標簽,直接獲得標簽內(nèi)的字符串。

但是: 當外層標簽內(nèi)含有多個平行的內(nèi)層標簽時,就不行了:

比如:鄭州人流醫(yī)院哪家好 http://m.zzzy120.com/

此p標簽內(nèi)有多個平行的a標簽,直接用p.string返回為None

最后,說說Comment屬性

可用>>> soup.b.string來獲得注釋的信息:

二者類型是不同的,因此可用bs4庫的 isinstance(, bs4.element.Comment)來過濾注釋信息,或者獲得注釋信息。

2,用BeautifulSoup遍歷HTML的方式

1,下行遍歷:

3個屬性:

1,.contents : 子節(jié)點的列表,將所有兒子節(jié)點存入列表(還包括所有的\n)

2,.children : 子節(jié)點的迭代類型,與.contents類似,用于循環(huán)遍歷兒子節(jié)點。

3, .descendants : 包含所有的子孫節(jié)點。與children一樣,只能用于迭代。

2,上行遍歷:

2個屬性:

1,.parent : 節(jié)點的父親標簽

2,.parents: 節(jié)點先輩的迭代類型,用于循環(huán)遍歷先輩節(jié)點(所有的先輩)。

3,平行遍歷:

4個平行遍歷屬性:(需要發(fā)生在同一個父親節(jié)點下的各節(jié)點間。)

1,.next_sibling : 返回按照HTML文本順序的下一個平行節(jié)點標簽。

2,.previous_sibling: 返回。。的上一個平行節(jié)點標簽。

3,.next_siblings: 迭代類型, 返回按照順序的所有平行節(jié)點標簽。

4,.previous_sibings:迭代類型 。。。。。。。。。

3,BeautifulSoup的格式化輸出與編碼:

prettify()函數(shù):能夠為HTML標簽,文本增加換行符,

1,世界上的所有信息都可以用3中標記形式進行標記。

XML 格式: 類似于HTML,標簽形式。

JSON: 有類型的鍵值對 key:value 如:

"name" : "北京" -----;一個鍵值對

"name" : ["hello", "hello"] -----: 一個鍵對應多個值1

"name" : {"subkey" : "subvalue"} -----:一個鍵值對作為一個值對應于一個鍵

YAML: 無類型的鍵值對 : key : value

name : 北京

name :

-newName : 北京

-newName : 上海 (并列)

name :

newname : hello (嵌套)

比較::

XML用<>標記 : 擴展性好,但是繁瑣。 Internet上的信息交互與傳遞,多用XML。

JSON用“” : 信息有類型,適合程序處理(js),較XML整潔。(無法注釋) 用于移動應用云端和節(jié)點的信息通信。用在對程序接口處處理。

YAML用縮進 : 信息無類型, 文本信息比例最高,可讀性好。各類系統(tǒng)的配置文件,有注釋易讀。

2,信息的提取方式

1,完整解析信息的標記形式,再提取關鍵信息。

2,無視標記形式,直接搜索關鍵信息。

3,融合方法。

如:提取HTML中所有的URL標簽。

思路):

1,搜索所有的標簽

2,解析標簽格式,提取href后的鏈接內(nèi)容。

3,find_all()方法

最常用的查找方法

<>.find_all(name, attrs, recursive, string, **kwargs)

返回一個列表類型,存儲查找的結(jié)果.

使用方法:

可單獨指定name,attrs, recursive, string等

標簽名, 屬性(或字典形式的鍵值對), 默認為對子孫節(jié)點搜索, 字符串。

(..) 等價于 .find_all(..)

soup(..) 等價于 soup.find_all(..)

<>.find()搜索只返回一個結(jié)果,字符串結(jié)果。

“python爬蟲怎么使用BeautifulSoup庫”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關的知識可以關注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!

文章標題:python爬蟲怎么使用BeautifulSoup庫
當前URL:http://chinadenli.net/article20/geogjo.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃App開發(fā)用戶體驗全網(wǎng)營銷推廣網(wǎng)站維護微信公眾號

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設