2017-05-15 75 views
0

讓我們對我的例子使用word技術。 我想搜索網頁上的所有文字。對於每個文本,我想查找每個元素標籤,其中包含帶有「technology」字樣的字符串,並僅打印包含該字詞的元素標籤的內容。請幫我弄清楚這一點。web scrape python通過文本查找全部,而不是通過元素標籤查找全部

words = soup.body.get_text() 

for word in words: 
    i = word.soup.find_all("technology") 
    print(i) 

回答

0

既然你正在尋找一個「HTML結構」,而不是一個典型的data結構的內部數據,你將不得不幾乎寫這份工作的HTML解析器。 Python通常不知道「這裏有一些字符串」與其他字符串中包含的另一個字符串有關。

有可能是這樣的庫,但我有一種感覺,有沒有:(

2

您應該使用搜索通過文本這可以通過使用text參數(後來改名完成在現代BeautifulSoup版本string),或者通過在一個字符串檢查功能和子:

for element in soup.find_all(text=lambda text: text and "technology" in text): 
    print(element.get_text()) 

或者,通過regular expression pattern

import re 

for element in soup.find_all(text=re.compile("technology")): 
    print(element.get_text())