我想在源代碼中搜索所有'1'並打印'1'的位置例如:<div id="yeahboy">1</div>
'1'可以被任何其他字符串替換。我想看看那個字符串周圍的標籤。Python 3 BeautifulSoup4搜索源頁面中的文本
回答
考慮這個方面例如*:
from bs4 import BeautifulSoup
html = """<root>
<div id="yeahboy">1</div>
<div id="yeahboy">2</div>
<div id="yeahboy">3</div>
<div>
<span class="nested">1</span>
</div>
</root>"""
soup = BeautifulSoup(html)
您可以使用find_all()
傳遞parameter True
以表明你只想元素節點(而非子文本節點),並且parameter text="1"
以表明該元素你想必須有文本內容等於「1」 - 或者你想搜索換任何其他文本:
for element1 in soup.find_all(True, text="1"):
print(element1)
輸出:
<div id="yeahboy">1</div>
<span class="nested">1</span>
*)對於OP:對於未來的問題,嘗試給出一個上下文,就像上面的上下文示例一樣。這會讓你的問題更具有具體的並且更容易回答 - 因爲人們不需要自己創建環境,這可能與你實際擁有的環境無關。
事情是我不知道它們的位置,我想用腳本來找到它們全部 –
@bob上面的代碼演示瞭如何在沒有先驗知識的情況下通過文本查找元素關於元素的位置。這個例子的任何問題? – har07
它確實有效,但有一個但是。如果文本包含所有字符串,它將起作用。如果我想查看一個字符串的一部分,它不起作用,例如:(這項工作)'從bs4導入請求 導入BeautifulSoup url ='http://www.editionsmosquito.com/exposition.php' r (true,text =「Expositions」): print(element1)'確實這個工作,但是當我這樣做時: '= requests.get(url) '對於soup.find_all中的element1(True,text =「Expo」): print(element1)'即使是包含世博會的博覽會,它也不打印它,你能幫助我嗎? –
- 1. python 3 - 搜索文本文件 -
- 2. Python網頁中的Python搜索腳本
- 3. UnicodeEncodeError在Python 3和BeautifulSoup4
- 4. SimpleML進一步搜索頁面源
- 5. 在python中搜索文本行中的3位數字
- 6. BeautifulSoup4轉換HTML實體(非打破空間?)之前,搜索(Python的3.X)
- 7. Python - 搜索文本文件
- 8. Python 3 - 在OOP中搜索
- 9. 的Python:在搜索文本
- 10. Python文本文件搜索
- 11. 從網頁到文本文件的Python網頁搜索列表
- 12. Python文本搜索問題
- 13. 像文檔搜索頁面
- 14. Python 3:搜索帶有用戶輸入的文本文件?
- 15. Python遍歷頁面Google搜索
- 16. 對齊文本和搜索框的頁面中,同時消除搜索按鈕
- 17. 的Python 3 BeautifulSoup4從每個<tr>
- 18. Python中最快的文本搜索
- 19. Selenium網頁中的文本搜索
- 20. Python - 用NLTK搜索文本
- 21. Python文件搜索腳本
- 22. 搜索HTML文本Python
- 23. 開源PHP搜索和分頁腳本?
- 24. 分頁搜索頁面與搜索文本開始於單引號在php
- 25. BeautifulSoup4:與符號文本
- 26. 在Electron中搜索頁面?
- 27. Python網頁搜索
- 28. 將Android中的搜索界面鏈接到php搜索頁面
- 29. 的Python,修改文本文件,搜索方面
- 30. Python的非嚴格搜索文本
你是指那個'1'*的位置是什麼意思? – har07
@ har07I只是想打印源代碼中所有'1'的位置1可以用任何其他字符串 –
來代替定義「位置」。你的意思是,你想打印容器元素:'