python爬蟲學習第十二天

2021-08-05 18:34:12 字數 1982 閱讀 3930

今天學習了用beautifulsoup函式來獲取指定的節點,以及用當前結點順藤摸瓜找到其子節點,後代節點,兄弟節點,父節點。

練習1 findall 函式抽取只包含在 標籤裡的文字

還順便把class=』red』標籤裡的內容也提取了

# from urllib.request import urlopen

# from bs4 import beautifulsoup

# r = urlopen('')

# bsobj = beautifulsoup(r)

# persons = bsobj.findall('span',)

# conversasions = bsobj.findall('span',)

# for name in persons:

# print(name.get_text())

# print('\n')

# for talks in conversasions:

# print(talks.get_text())

練習2 查詢內容匹配的html元素

查詢html元素在昨天已經練習過了就是find/findall函式。

利用這兩個函式的tag引數與tagatrribute引數可以讓我們檢索大多數標籤,此外我們還可以通過text引數(下面的例子正是如此)匹配內容包含制定字串的標籤

# from urllib.request import urlopen

# from bs4 import beautifulsoup

# r = urlopen('')

# bsobj = beautifulsoup(r)

# test = bsobj.findall(text = 'the prince')

# print(len(test))

練習3 子標籤和後代標籤 注意他們的區別

子標籤就是乙個父標籤的下一級,而後代標籤是指乙個父標籤 下面所有級別的標籤。所有的子標籤都是後代標 籤,但不是所有的後代標籤都是子標籤。

# from urllib.request import urlopen

# from bs4 import beautifulsoup

# r = urlopen('')

# bsobj = beautifulsoup(r)

# for child in bsobj.find('table',).children:

# print(child)

# print('\n')

# for descendant in bsobj.find('table',).descendants:

# print(descendant)

練習4 用next_siblings獲取兄弟節點

# from urllib.request import urlopen

# from bs4 import beautifulsoup

# r = urlopen('')

# bsobj = beautifulsoup(r)

# for sibling in bsobj.find('table',).tr.next_siblings:

# print(sibling)

練習5 用parent/parents操作父節點

# from urllib.request import urlopen

# from bs4 import beautifulsoup

# r = urlopen('')

# bsobj = beautifulsoup(r)

# money = bsobj.find('img',).parent.previous_sibling

# print(money.get_text())

學習Python 第十二天

列表 鍊錶 1 棧 filo 先進後出 2 佇列 fifo 先進先出 普通佇列 class myquene object def init self,list self.list list def size self return len self.list def delete self if s...

學習Python第十二天

if else語句 if 條件為真 執行命令1 else 執行命令2while else 語句 a 0while a 5 print a,是大於5的數 a 1else print a,是小於或等於5的數 10 是大於5的數 9 是大於5的數 8 是大於5的數 7 是大於5的數 6 是大於5的數 5 ...

第十二天Python學習記錄

1 iphone7 alex rain jack old driver 2 iphone8 alex shanshan jack old boy 34 both list 56 for name in iphone8 7if name in iphone7 89 print both list 資料...