from urllib.request import urlopen
from bs4 import beautifulsoup
##2.1
#我們可以抓出整個頁面,然後建立乙個beautifulsoup 物件
html = urlopen("")
bsopj = beautifulsoup(html)
#2.2.1
## 查詢
namelist = bsopj.find_all("span", )
namelist1 = bsopj.find_all(text="the prince")
# for name in namelist:
# print(name.get_text())
#print(len(namelist1))
#.get_text() 會把你正在處理的 html 文件中所有的標籤都清除,然後返回乙個只包含文字的字串。 假如你正在處理乙個包含許多超連結、段落和標籤的大段源**, 那麼 .get_text() 會把這些超連結、段落和標籤都清除掉,只剩下一串不帶標籤的文字。
#用 beautifulsoup 物件查詢你想要的資訊,比直接在 html 文字裡查詢資訊要簡單得多。 通常在你準備列印、儲存和運算元據時,應該最後才使用 .get_text()。一般情況下,你應該盡可能地保留 html 文件的標籤結構。
#alltxt = bsopj.find_all(id = "text")
#alltxt = bsopj.find_all("",)#這倆其實一樣的
#print(alltxt)
#2.2.2其他beautifulsoup物件
#•beautifulsoup 物件
#前面**示例中的 bsobj
#• 標籤 tag 物件
# beautifulsoup 物件通過 find 和 findall,或者直接呼叫子標籤獲取的一列物件或單個
# 物件,就像:bsobj.div.h1
#•其他不常用
#2.2.3導航樹
#1.處理子標籤和其他後代標籤??????????其實不太懂
html = urlopen("")
bsobj = beautifulsoup(html)
# for child in bsobj.find("table",).children:
# print(child)
#2.處理兄弟標籤
#next_siblings() 函式可以讓收集**資料成為簡單的事情,尤其是處理帶標題行的**
# for sibling in bsobj.find("table",).tr.next_siblings:
# print(sibling)
#兄弟節點可以理解為和本節點處在統一級的節點,.next_sibling 屬性獲取了該節點的下乙個兄弟節點,.previous_sibling 則與之相反,如果節點不存在,則返回 none
#3.父標籤處理
#較為少用
#print(bsobj.find("img",).parent.previous_sibling.get_text())
#2.3正規表示式
#2.4正規表示式和beautifulsoup
import re
images = bsobj.find("img",)
# for image in images:
# print(image["src"])
#2.5獲取屬性
#print(images.attrs["src"])
#2.6lambda表示式
# beautifulsoup 用這個函式來評估它遇到的每個標籤物件,最後把評估結果為「真」的標籤保留,把其他標籤剔除。
#下面的**就是獲取有兩個屬性的標籤:
print(bsobj.findall(lambda tag: len(tag.attrs) == 2))
#2.7超越beautifulsoup
# beautifulsoup是 python 裡最受歡迎的 html 解析庫之一,但是除了lxml、html parser也可以
第二章 網路應用
第二章 網路應用 1.網路應用體系結構 識記網路應用特性結構與分類 客戶 伺服器 c s 結構 純p2p結構 混合結構 領會c s網路應用 p2p網路應用以及混合網路應用的特點 區別與聯絡 c s最主要的特徵是通訊只在客戶與伺服器之間進行,客戶與客戶之間不進行直接通訊 p2p結構可以動態地直接與其他...
python第二章上機實踐 演算法第二章上機實踐報告
1.實踐題目名稱 找第k小的數 2.問題描述 在n 1 n 1000 個無序的整數中找出第k小的數,且時間複雜度為o n 3.演算法描述 int partition int a,int left,int right 函式功能 將輸入的陣列進行排序,排序後的陣列需要滿足 基準左邊的數都小於基準,基準右...
python第二章上機實踐 第二章上機實踐報告
設計乙個平均時間為o n 的演算法,在n 1 n 1000 個無序的整數中找出第k小的數。輸入格式 輸入有兩行 第一行是n和k,0 第二行是n個整數 輸出格式 輸出第k小的數 輸入樣例 在這裡給出一組輸入。例如 10 4 2 8 9 0 1 3 6 7 8 2 輸出樣例 在這裡給出相應的輸出。例如 ...