如何用BeautifulSoup优雅提取<span>标签内的日期文本?
优雅提取Google NEWS日期的BeautifulSoup写法
这里有两种更简洁的实现方式,比手动循环更优雅:
方法1:直接用CSS选择器一步定位目标元素
跳过先找div的步骤,直接通过CSS选择器匹配包含日期的span标签,再用列表推导式提取文本:
dates = [span.text for span in soup.select('div.OSrXXb.ZE0LJd.YsWzw span')]
CSS选择器div.OSrXXb.ZE0LJd.YsWzw span会直接选中所有目标div内部的span节点,一步到位减少中间变量。
方法2:基于已有的date_section优化
如果已经获取了date_section集合,可以用列表推导式替代显式循环,代码更紧凑:
dates = [section.find('span').text for section in date_section]
这种方式利用BeautifulSoup的.find()方法直接从每个div节点中取出内部的span,再提取文本,避免了冗余的循环代码。
两种方法都能生成目标日期列表,相比手动循环更符合Python的简洁风格,也更易读。
内容的提问来源于stack exchange,提问作者Haripriya S
相关产品推荐
相关产品推荐

