我正在做一些代码来抓取特定搜索结果的页面,但主要问题是将正则表达式与 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>
标记。
演示