-1

我正在尝试获取日期

XXX='<div class="document-published-date">
                                July 14, 2018
                            </div>'

我期待这样的事情会起作用

re.search('>(.*?)</div>',XXX)

但我得到一个空的结果。

4

2 回答 2

1

默认情况下,点不匹配新行。您需要使用 (?s) 标志来启用点以匹配新行。您还需要]像这样稍微更正您的正则表达式(在您的正则表达式'>(。*?)]'的末尾删除),

(?s)>\s*(.*?)\s*</div>

解释:

  • (?s)--> 启用点来匹配新行
  • >--> 匹配 > 字符
  • \s*--> 在预期的文本捕获之前使用任何空格
  • (.*?)--> 捕获你想要的数据
  • \s*--> 在预期数据之后捕获任何空格
  • </div>--> 匹配这个标签

演示

于 2018-11-19T05:17:52.717 回答
-1

定期使用这样的正则表达式可能不是一个好主意。您可以改为使用htmldate之类的模块来提取 HTML 文档的日期(免责声明:我是作者),它的工作原理如下:

1.安装包:

pip/pip3/pipenv (your choice) -U htmldate

2. 检索网页,解析并输出日期:

from htmldate import find_date

find_date('http://blog.python.org/2016/12/python-360-is-now-available.html')
于 2020-01-14T12:59:52.630 回答