如何在 python 中使用 beautifulsoup4 來抓取標籤中的內容?

小白入門階段,主要用requests和beautifulsoup4庫來爬取內容。目前遇到的問題是,使用beautifulsoup抓取標籤內容出錯。所以來諮詢下過往前輩的建議。

1、像上圖HTML文檔中的滴滴出行,應該如何抓取?用select函數可以實現嘛?
2、像抓取戰略投資,我使用了下面的語句,內容截取到了,但是還多了個括弧。不知道怎麼把括弧去掉。
investment=soup.select("span[class="t-small c-green"]")[0].text.strip()
3、我光是select函數就用迷糊了。。。更別說添加別的函數了。
問題比較簡單,但是已經卡了我很久了。求大神指點一二啊!


感謝@ Kaiser 提供的源代碼

from bs4 import BeautifulSoup

html_doc = """
&
&
&
滴滴出行
&
(戰略投資)
&
&

&
&
&&
編輯
&
& """

soup = BeautifulSoup(html_doc, "html.parser")
# 初級版
didi = soup.b.next_element.strip()
invest = soup.b.span.next_element.strip()

# 進階版

didi, invest = soup.b.stripped_strings


用replace函數去掉啊。。。


樓主別學bs了,網上文章很多都是過時的。建議使用 pyquery 或者lxml,前者是jquery用法,很簡單,後者性能很高,避開了GIL。bs又難用,性能又差,樓主可以去對比一下。



Python爬蟲利器二之Beautiful Soup的用法
你可以參照一下這個

我個人比較喜歡用find


這個beautifulsoup 的默認解析器使用的是html.parser。可以改用容錯性更高的lxml來做解析。具體的安裝可以參考:
python修改html


find方法
寫正則匹配其中的中文(現在想想當時為了練習正則真的是喪心病狂)
不過要提醒的是bs對象可不要直接print哦,不然被坑了你都百度不到答案


我有句pyquery不知當講不當講


你如果學過jQuery的話可以使用pyquery來提取解析內容,方便簡單。


括弧屬於標籤內容。用正則表達式可以把括弧去掉。
還有建議問問題把網站鏈接貼出來。


那個括弧是屬於標籤中的內容,BeautifulSoup再怎麼強,正確返回了標籤內容,它已經功德圓滿了,剩下的已經不是他的職責範圍,而應該要靠Python本身強大的文本處理去處理了。
有replace和strip函數
有正則表達式
如果這些你不懂的話,建議要加強一下基礎學習,Python的庫是強大,也不是說基礎就不用學了。


推薦閱讀:

按鍵精靈等以GUI介面為基礎的程序在爬蟲界的地位是怎樣的?
用 Scrapy 爬蟲怎麼解決動態網頁的問題?
scrapy的request的meta參數是什麼意思?
用python寫爬蟲時用自帶的urllib好還是用request庫好,還是兩個都要學?
C#多線程發送http請求效率是否比python慢?

TAG:Python | 爬蟲計算機網路 | beautifulsoup | 網頁爬蟲 |