如何使用xpath python方法提取不带括号的文本?

如何使用xpath python方法提取不带括号的文本?,python,string,xpath,brackets,Python,String,Xpath,Brackets,我正在建立一个数据库,收集报纸网站上发布的新闻,并遵循此代码的指示。。约翰·沃森·鲁尼github网站 但是,当我通过web抓取过程提取信息时,输出在括号“[]”内,我无法删除它们来清理数据并生成新闻数据框 ''' ''' 我不允许嵌入图像,但打印输出如下: 在joven caso de joven que se进行的体内采购和财政调查 自杀倾向 ['Una joven de 17 años Denanceóque 4 新教徒的性别政策] {'https://www.eltiempo.com/j

我正在建立一个数据库,收集报纸网站上发布的新闻,并遵循此代码的指示。。约翰·沃森·鲁尼github网站 但是,当我通过web抓取过程提取信息时,输出在括号“[]”内,我无法删除它们来清理数据并生成新闻数据框

'''

'''

我不允许嵌入图像,但打印输出如下:

在joven caso de joven que se进行的体内采购和财政调查 自杀倾向
['Una joven de 17 años Denanceóque 4 新教徒的性别政策]
{'https://www.eltiempo.com/justicia/investigacion/investigan-denuncia-de-agresion-sexual-de-policias-a-menor-en-popayan-588429'}
['这里是作者姓名]
['2021-05-14']
2021年5月15日
18:14:48

我想删除两个类型括号“[]”y“{}”,我使用了以下命令,但它们转换NAN中的值:

     news_db['subtitle']= news_bd['subtitle'].str.strip(']')
     news_db['subtitle']= news_bd['subtitle']..str.replace(r"\[.*\]", "")
方法返回找到的项的列表,例如
['Author']
,而不是
'Author'
,就像
项一样。find
,在搜索多个元素(例如
['Author1',Author2']
)时很有用。 要仅获取一个值,请使用
first
参数:

subtitle = item.xpath('//a[@class="epigraph page-link"]//text()', first=True)
author = item.xpath('//span[@class="oculto"]/span//text()', first=True)
date = item.xpath('//meta[@itemprop="datePublished"]/@content', first=True)
绝对链接
可能是一个
集合
,您可以使用

link = next(iter(newsitem.absolute_links))
# or
link = newsitem.absolute_links.pop()

您可以对每个解析的项进行切片,以删除第一个和最后一个字符。例如,项目[1:-1]我以前尝试过,但同样的结果发生了。。。由于缩进错误和缺少详细信息,无法运行您发布的代码;您还应该简化代码,使其尽可能少地执行操作,并且仍然显示存在错误()括号
[]
表示您获得列表-因此您可以使用
[0]
获取列表中的第一个元素。或者,您可能必须使用
for
-loop来分别处理每个元素。@furas感谢您帮助我更好地理解刮削过程和输出。现在,所有这些都是有道理的
link = next(iter(newsitem.absolute_links))
# or
link = newsitem.absolute_links.pop()