xapth 如何提取tag内的发表时间信息,使用了text()也不行

问题遇到的现象和发生背景
  新手小白,使用html.xpath()去爬取文章的发布时间,但无论如何都不行,运行结果都是空列表[],但爬取其他文本使用/text()都可以。可能是因为时间是在tag em之内。请问如何处理?
用代码块功能插入代码,请勿粘贴截图
            time_path = '//*[@class="rich_media_meta_list"]/em[1]/text()'
            time = html.xpath(time_path)
            print(time)

运行结果及报错内容

img

如图,如何爬出2022-03-30 08:58。

我的解答思路和尝试过的方法
我想要达到的结果

用selenium还是requests?

requests得到的是源代码,如果时间是js动态生成,xpath是获取不到的,需要找到生成时间dom容器的js代码,从代码中获取时间,而不是通过浏览器开发工具看到的dom结构来获取

写爬虫碰到这种问题,无非就两种情况。
情况一:xpath有误,根据前面描述,你各种修改不行的话,应该没啥问题。
情况二:打印一下获取到的页面整体数据,看有没有你所需要的内容?有可能页面是动态加载的,你爬取整个页面的时候,你所需要的数据没在里面,你xpath当然定位不到。
按这个处理,实在处理不了私信我帮你看。

        headers = {
            'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36'}
        response1 = requests.get(url=url, headers=headers)
        create_time = re.findall('create_time = "(.*?)"', response1.text)[0]
        publish_time = time.strftime("%Y-%m-%d %H:%M", time.localtime(int(create_time)))
        print(publish_time)

后来使用正则解决了,也不知道为什么

//em[@id="publish_time"]/text()

你的path是哪来的,多半是xpath写的有问题,建议使用chrome自带的功能,如果不熟悉xpath请使用chrome自带的功能
你的思路是对的

code = html.xpath('/html/body/div[2]/div/div/div[2]/div/div/div[2]/table/tbody/tr/td[3]/div/div/text()')

img

python获取新闻标题及发布时间
如有帮助,望采纳
https://blog.csdn.net/m0_37707378/article/details/62475590