python - Python selenium web 在没有类名的嵌套范围内抓取动态内容
问题描述
我正在尝试解析嵌套跨度结构中的动态内容。我想得到的文本是“动态内容2”,它是第二个跨度元素(类=“第二跨度”)的内容,它的值会定期更新。
<html>
<div class="outer div">
<span class="first span">
<span>random content</span>
</span>
<span class="second span">
<span>dynamic content2</span>
</span>
</div>
</html>
我是网络抓取的新手,目前这就是我所拥有的:
import os, sys
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from bs4 import BeautifulSoup
opts = Options()
opts.add_argument(" --headless")
chrome_driver = os.getcwd() +"\\chromedriver.exe"
# Instantiate a webdriver
driver = webdriver.Chrome(options=opts, executable_path=chrome_driver)
driver.get("some url")
soup_file=driver.page_source
soup = BeautifulSoup(soup_file)
# works fine
print(soup.title.get_text())
print("Testing getting dynamic element")
spanId = 'second span'
mySpan = soup.find("span", class_ = spanId )
print(mySpan.get_text())
driver.quit()
但是什么都没有返回。任何帮助表示赞赏。
解决方案
这是输出dynamic content2
代码:
tag="""
<html>
<div class="outer div">
<span class="first span">
<span>random content</span>
</span>
<span class="second span">
<span>dynamic content2</span>
</span>
</div>
</html>
"""
soup = BeautifulSoup(tag, 'html.parser')
#span= soup.select_one('div.outer.div > span.second.span >span').text
#or
span= soup.select_one('span.second.span >span').text
print(span)
输出:
dynamic content2
推荐阅读
- c# - 必应地图突然停止工作
- angularjs - TypeError:无法读取未定义的属性“$parent”
- javascript - 使用 Object.assign() 删除对象属性
- javascript - JavaScript中的'import'和'require'有什么区别?
- json - 使用 Alamofire 请求无法快速获取正确的 JSON 格式
- selenium-webdriver - 如何在网页上自动化谷歌地图图像?
- javascript - 在控制台日志中打印数组内容
- javascript - vue条件显示
- python - 使用 Python 读取和处理大型 CSV
- php - php json数组中的未定义错误