Python 如何防止xpath在遇到的标记上添加逗号
如何修改以下xpath命令,使其不在任何子标记上添加逗号Python 如何防止xpath在遇到的标记上添加逗号,python,xpath,web-scraping,scrapy,Python,Xpath,Web Scraping,Scrapy,如何修改以下xpath命令,使其不在任何子标记上添加逗号 xpath('/a//text()').extract() 电流输出为 C,-(,K,1,, ,K,2,)-convexity 但我想要的是: C-(K1, K2)-convexity 页面来源的相关部分: <a href=".."><i>C</i>-(<i>K</i><sub>1</sub>, <i>K</i><sub
xpath('/a//text()').extract()
电流输出为
C,-(,K,1,, ,K,2,)-convexity
但我想要的是:
C-(K1, K2)-convexity
页面来源的相关部分:
<a href=".."><i>C</i>-(<i>K</i><sub>1</sub>, <i>K</i><sub>2</sub>)-convexity</a>
您提供的xpath中没有任何错误,它只是返回多个结果,一个列表,您需要创建一个字符串:
>>> ''.join(response.xpath('/a//text()').extract())
u'C-(K1, K2)-convexity'
这是我的
如果这个值将成为一个值,那么最好利用它 您提供的xpath中没有任何错误,它只是返回多个结果,一个列表,您需要它来生成一个字符串:
>>> ''.join(response.xpath('/a//text()').extract())
u'C-(K1, K2)-convexity'
这是我的
如果这个值将成为一个值,那么最好利用它 在捕获“a”标记后,您似乎只想剥离html标记,因此我将使用正则表达式:
In [3]: import re
In [4]: [re.sub('<[^<]+?>', '', x) for x in response.xpath('/a').extract()]
Out[4]: [u'C-(K1, K2)-convexity']
[3]中的:导入re
在[4]:[re.sub('看来,在捕获'a'标记后,您只需剥离html标记,因此我将使用正则表达式:
In [3]: import re
In [4]: [re.sub('<[^<]+?>', '', x) for x in response.xpath('/a').extract()]
Out[4]: [u'C-(K1, K2)-convexity']
[3]中的:导入re
在[4]:[re.sub('谢谢,我必须在';'中添加正则表达式。join()
,这样单锚项目中的逗号不会与多锚项目之间的逗号混合。谢谢,我必须在';'中添加正则表达式。join()
这样,单锚项目中的逗号就不会与多个锚项目之间的逗号混合。有没有办法编辑它,使找到的多个a用分号分隔?现在根本没有分隔符。@user1892697是的,只需尝试“;”。join(response.xpath(“/a//text()”).extract())
。它对您有用吗?不,这也会在a中添加分号,即C;-(;K;1;,;K;2;)-凸性
@user1892697尝试使用类似于:';'的内容遍历a元素。join([e.xpath('string('))[0]。在响应中提取()e.xpath('/a'))
@elias谢谢,这非常有效(并且输出与todinov的';')相同。join([re.sub('是否有任何方法可以编辑它,使找到的多个a用分号分隔?现在根本没有分隔符。@user1892697是的,请尝试';')。join(response.xpath('/a//text()).extract())
。它对您有用吗?不,这也会在a中添加分号,即C;-(;K;1;,;K;2;)-凸性
@user1892697尝试使用类似于:';'的内容遍历a元素。join([e.xpath('string('))[0]。在响应中提取()e.xpath('/a'))
@elias谢谢,这非常有效(并且输出与todinov的';'相同