繁体   English   中英

如何使用css选择器在特定div之前获取div

[英]How to get the div before a specific div with css selector

可能有更好的方法来做到这一点,但我现在只需要它工作,然后才能想出更好的解决方案。 我正在使用 Python 和 BeautifulSoup 开发一个网页抓取应用程序。 我需要抓取一个特定的 div,但该 div 在不同页面上的位置略有变化(有时是第 3 个,有时是第 4 个等)。 我想要的 div 上没有 class 标签或 id 标签,但我确实注意到在我想要的 div 之后总是有一个 div,并且那个有一个 id 标签。 它看起来像这样:

<div id="main-container">
    <div></div>
    <div></div>
    <div>The div I want</div>
    <div id="point"></div>
    <div></div>
</div>

所以我正在寻找这样的东西:

div#main-container > div:item-before(#point)

有什么简单的方法可以在 CSS 中做到这一点,还是我必须想出更好的解决方案?

使用idclass查找特定div并调用find_previous()以获取适当的标签

html="""<div id="main-container">
    <div></div>
    <div></div>
    <div>The div I want</div>
    <div id="point"></div>
    <div></div>
</div>"""
soup=BeautifulSoup(html,"html.parser")
soup.find("div",attrs={"id":"main-container"}).find("div",attrs={"id":"point"}).find_previous()

输出:

<div>The div I want</div>

您可以通过 CSS 文件中的第 n 个选择器访问您的 div:

 div#main-container:nth-child(3){
   /*Your code*/
 }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM