摘要:是包里最有名的分解工具之一。簡(jiǎn)單易用安裝注意大小寫(xiě),而且不要安裝,因?yàn)榇恚呀?jīng)停止更新。而不同的變量的使用方法也需要注意。類型可遍歷字符串類型類型增刪改標(biāo)簽參考使用改變網(wǎng)頁(yè)內(nèi)容修改標(biāo)簽內(nèi)容
BeautifulSoup是Python包里最有名的HTML parser分解工具之一。簡(jiǎn)單易用安裝:
pip install beautifulsoup4
注意大小寫(xiě),而且不要安裝BeautifulSoup,因?yàn)?b>BeautifulSoup代表3.0,已經(jīng)停止更新。
常用語(yǔ)法參考我之前的文章:BeautifulSoup :一些常用功能的使用和測(cè)試
# 創(chuàng)建實(shí)例 soup = BeautifulSoup(html, "html5lib")選擇器
根據(jù)不同的網(wǎng)頁(yè),選擇器的使用會(huì)很不同:
絕大部分下使用CSS選擇器select()就足夠了
如果按照標(biāo)簽屬性名查找,而屬性名中有-等特殊字符,那么就只能使用find()選擇器了。
# 最佳選擇器: CSS選擇器(返回tag list) results = soup.select("div[class*=hello_world] ~ div") for tag in results: print(tag.string) #print the tag"s html string # print(tag.get_text()) #print its inner text #單TAG精確選擇器:返回單個(gè)tag. tag = soup.find("div", attrs={"class": "detail-block"}) print(tag.get_text()) # 多Tag精確選擇器: 返回的是text,不是tag results = soup.find_all("div", attrs={"class": "detail-block"}) # 多class選擇器(標(biāo)簽含有多個(gè)Class),重點(diǎn)是"class*=" results = soup.select("div[class*=hello_world] ~ div")獲取值
tag = soup.find("a") # 只獲取標(biāo)簽的文本內(nèi)容 text = tag.get_text() # 獲取標(biāo)簽的全部?jī)?nèi)容(如 asdfa) s = tag.string # 獲取標(biāo)簽的屬性 link = tag["href"]修改值
參考:Beautiful Soup(四)--修改文檔樹(shù)
tag = soup.find("a", attrs={"class": "detail-block"}) #修改屬性 tag["href"] = "https://google.com" # 修改內(nèi)容對(duì)象類型.. 中間的內(nèi)容 tag.string = "New Content" # 刪除屬性 del tag["class"]
在我們使用選擇器搜索各類tag標(biāo)簽時(shí),BeautifulSoup會(huì)根據(jù)使用的函數(shù)而返回不同類型的變量。而不同的變量的使用方法也需要注意。
Tag類型(
tag.string
tag.get_text()
可遍歷字符串類型(bs4.element.NavigableString):
Comment類型(
參考:使用BeautifulSoup改變網(wǎng)頁(yè)內(nèi)容
# 修改標(biāo)簽內(nèi)容 tag = soup.find("title") tag.string = "New Title"
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/43079.html
摘要:在不懂和等協(xié)議的情況下,我直接打個(gè)比方來(lái)解釋一下什么是請(qǐng)求,以瀏覽器為例,人在瀏覽器輸入,然后敲擊鍵,直到頁(yè)面出現(xiàn),整個(gè)過(guò)程,我們可以抽象為我們向百度服務(wù)器發(fā)起的一次請(qǐng)求。更專業(yè),更詳細(xì)的解釋,自己去百度學(xué)習(xí)吧。 前言 ??剛學(xué)完python基礎(chǔ),想學(xué)習(xí)爬蟲(chóng)的新手,這里有你想要的東西。??本文著重點(diǎn)在于教新手如何學(xué)習(xí)爬蟲(chóng),并且會(huì)以外行人的思維進(jìn)行形象地講解。最近我一兄弟想學(xué),我就想寫(xiě)個(gè)...
摘要:優(yōu)化編寫(xiě)一鍵安裝的腳本由于的系統(tǒng)默認(rèn)都是,如果服務(wù)器需要用環(huán)境的話每臺(tái)都得手動(dòng)操作升級(jí),工作量比較大,編寫(xiě)腳本提升效率。 安裝依賴的庫(kù) yum -y install python-devel openssl openssl-devel gcc sqlite sqlite-devel mysql-devel libxml2-devel libxslt-devel Python =====...
摘要:所以這篇文章就來(lái)研究一下自帶的打包系統(tǒng)。打包項(xiàng)目下面就進(jìn)入本文的正題,的打包系統(tǒng)上?;旧衔覀儾恍枰耆私獯虬到y(tǒng),只要學(xué)會(huì)簡(jiǎn)單的幾個(gè)點(diǎn)就可以打包自己的類庫(kù)了。版本號(hào)下面是開(kāi)發(fā)測(cè)測(cè)發(fā)布候選最終發(fā)布等情況的版本號(hào)實(shí)例。 最近把pyenv、pipenv這種都研究了一下,然后我發(fā)現(xiàn)一個(gè)嚴(yán)重的問(wèn)題:就是我雖然看了半天這些工具,但是我對(duì)Python自己的打包系統(tǒng)卻完全沒(méi)有了解。所以這篇文章就來(lái)...
摘要:剛學(xué)爬蟲(chóng)不久,迫不及待的找了一個(gè)網(wǎng)站練手,新筆趣閣一個(gè)小說(shuō)網(wǎng)站。繼續(xù)學(xué)習(xí),有改進(jìn)方案的歡迎提出來(lái),一起交流。 剛學(xué)Python爬蟲(chóng)不久,迫不及待的找了一個(gè)網(wǎng)站練手,新筆趣閣:一個(gè)小說(shuō)網(wǎng)站。 前提準(zhǔn)備 安裝Python以及必要的模塊(requests,bs4),不了解requests和bs4的同學(xué)可以去官網(wǎng)看個(gè)大概之后再回來(lái)看教程 爬蟲(chóng)思路 剛開(kāi)始寫(xiě)爬蟲(chóng)的小白都有一個(gè)疑問(wèn),進(jìn)行到什么時(shí)候...
摘要:爬取糗百內(nèi)容代碼地址微信公眾號(hào)智能制造社區(qū),歡迎關(guān)注。爬蟲(chóng)程序一般是通過(guò)模擬瀏覽器對(duì)相應(yīng)發(fā)出請(qǐng)求,獲取數(shù)據(jù),并通過(guò)正則等手段匹配出頁(yè)面中我們所需的數(shù)據(jù)。庫(kù)基本介紹是學(xué)習(xí)爬蟲(chóng)的一大利器。 爬取糗百內(nèi)容 GitHub 代碼地址https://github.com/injetlee/Python/blob/master/qiubai_crawer.py 微信公眾號(hào):【智能制造社區(qū)】,歡迎關(guān)注...
閱讀 1494·2023-04-26 01:58
閱讀 2373·2021-11-04 16:04
閱讀 1852·2021-08-31 09:42
閱讀 1853·2021-07-25 21:37
閱讀 1118·2019-08-30 15:54
閱讀 2151·2019-08-30 15:53
閱讀 3107·2019-08-29 13:28
閱讀 2760·2019-08-29 10:56