使用正则表达式在特定 div 之前获取链接文本



我正在做一些代码来抓取特定搜索结果的页面,但主要问题是将正则表达式与 python 一起使用。

以下是网站来源的一部分:

<div class="title_block">
<div class="ttl-oss">  </div>
<a href="https://url.com/search">TEXT-TO-CATCH</a>
</div>

divttl-oss在页面中只出现一次,所以我的想法是在其他中使用正则表达式来搜索唯一的div,并像(TEXT-TO-CATCH)一样获取它后面的第一个链接文本。

问题是如果我使用一些正则表达式,例如<div class="title_block">.*?(<a.*?>)+我无法找到div 并获取文本。

欢迎任何解决它的新方法。

谢谢

HTML通常最好由HTML解析器处理,并且有几个可用于python。一般来说,正则表达式对于复杂的HTML来说不够灵活。

但是,这应该得到您要查找的文本,假设您的页面看起来与您作为示例发布的页面相似。

<div class="ttl-oss">[sS]*?<a[^>]*href.*>(.*)</a>

此正则表达式查找您在示例中描述的结构化div,查找它找到的第一个锚标记,其中包含"href"的锚标记,然后捕获结束>后的第一个文本块,捕获直到结束</a>标记。

演示

最新更新