Vol*_*il3 1 html python beautifulsoup html-parsing web-scraping
正如它所说的。无论如何要在整个 DOM 中搜索特定文本,例如CAPTCHA单词?
您可以使用find并指定text参数:
使用文本,您可以搜索字符串而不是标签。与名称和关键字参数一样,您可以传入字符串、正则表达式、列表、函数或值 True。
>>> from bs4 import BeautifulSoup
>>> data = """
... <div>test1</div>
... <div class="myclass1">test2</div>
... <div class="myclass2">CAPTCHA</div>
... <div class="myclass3">test3</div>"""
>>> soup = BeautifulSoup(data)
>>> soup.find(text='CAPTCHA').parent
<div class="myclass2">CAPTCHA</div>
Run Code Online (Sandbox Code Playgroud)
如果CAPTCHA只是文本的一部分,您可以将lambda函数传递给text并检查是否CAPTCHA在标签文本内:
>>> data = """
... <div>test1</div>
... <div class="myclass1">test2</div>
... <div class="myclass2">Here CAPTCHA is a part of a sentence</div>
... <div class="myclass3">test3</div>"""
>>> soup = BeautifulSoup(data)
>>> soup.find(text=lambda x: 'CAPTCHA' in x).parent
<div class="myclass2">Here CAPTCHA is a part of a sentence</div>
Run Code Online (Sandbox Code Playgroud)
或者,如果您将正则表达式传递给text:
>>> import re
>>> soup.find(text=re.compile('CAPTCHA')).parent
<div class="myclass2">Here CAPTCHA is a part of a sentence</div>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1141 次 |
| 最近记录: |