[英]Get html text with Beautiful Soup
我正在尝试从 div 中获取数字:
<div class="tv-symbol-price-quote__value js-symbol-last">122.7<span class="">8</span></div>
我需要 122.7 号码,但我找不到。 我尝试过:
strings = soup.find("div", class_="tv-symbol-price-quote__value js-symbol-last").string
但是,有不止一个元素,我收到“无”。
有没有办法打印孩子并从孩子那里获取字符串?
使用.getText()
。
例如:
from bs4 import BeautifulSoup
sample_html = """
<div class="tv-symbol-price-quote__value js-symbol-last">122.7<span class="">8</span></div>
"""
soup = BeautifulSoup(sample_html, "html.parser")
strings = soup.find("div", class_="tv-symbol-price-quote__value js-symbol-last").getText()
print(strings)
Output:
122.78
或使用__next__()
仅获取122.7
。
soup = BeautifulSoup(sample_html, "html.parser")
strings = soup.find("div", class_="tv-symbol-price-quote__value js-symbol-last").strings.__next__()
print(strings)
Output:
122.7
要仅获取第一个文本,请搜索标签,然后调用next_element
方法。
from bs4 import BeautifulSoup
html = """
<div class="tv-symbol-price-quote__value js-symbol-last">122.7<span class="">8</span></div>
"""
soup = BeautifulSoup(html, "html.parser")
print(
soup.find("div", class_="tv-symbol-price-quote__value js-symbol-last").next_element
)
Output:
122.7
您可以使用 selenium 查找元素,然后使用 BS4 解析它。 一个例子是
import selenium.webdriver as WD
from selenium.webdrive.chrome.options import Options
import bs4 as B
driver = WD.Chrome()
objXpath = driver.find_element_by_xpath("""yourelementxpath""")
objHtml = objXpath.get_attribute("outerHTML")
soup = B.BeutifulSoup(objHtml, 'html.parser')
text = soup.get_text()
这段代码应该可以工作。
免责声明
我有一段时间没有使用 selenium 和 bs4 完成工作,所以你可能需要稍微调整一下。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.